2010-08-20 41 views
18

Tôi đang sử dụng startActivity để gọi một Activity khác và tôi nhận được "Exception Not Found Exception". Đây là mã của tôi:Android - Hoạt động không tìm thấy Ngoại lệ

TextView textView = (TextView) itemClicked; 
    String strText = textView.getText().toString(); 
    String key = "symptom"; 
    Intent mIntent = new Intent(symptomActivity.this, symptomRemedyActivity.class); 
    Bundle mBundle = new Bundle(); 
    mBundle.putString(key, strText); 
    mIntent.putExtras(mBundle); 
    startActivity(mIntent); 

đây là đầu ra Logcat:

INFO/ActivityManager(59): Displayed activity com.android.homeopathy/.HomeopathyActivity: 5542 ms (total 39089 ms) 
INFO/ARMAssembler(59): generated scanline__00000077:03545404_00000004_00000000 [ 47 ipp] (67 ins) at [0x3283e0:0x3284ec] in 627000 ns 
INFO/ActivityManager(59): Starting activity: Intent { cmp=com.android.homeopathy/.symptomActivity } 
INFO/ActivityManager(59): Displayed activity com.android.homeopathy/.symptomActivity: 2706 ms (total 2706 ms) 
INFO/ActivityManager(59): Starting activity: Intent { cmp=com.android.homeopathy/.symptomRemedyActivity (has extras) } 

đây là đầu ra cửa sổ gỡ lỗi:

Thread [<1> main] (Suspended (exception ActivityNotFoundException)) 
Instrumentation.checkStartActivityResult(int, Object) line: 1404  
Instrumentation.execStartActivity(Context, IBinder, IBinder, Activity, Intent, int) line: 1378 
symptomActivity(Activity).startActivityForResult(Intent, int) line: 2817  
symptomActivity(Activity).startActivity(Intent) line: 2923 
symptomActivity$1.onItemClick(AdapterView, View, int, long) line: 67  
ListView(AdapterView).performItemClick(View, int, long) line: 284 
ListView.performItemClick(View, int, long) line: 3382 
AbsListView$PerformClick.run() line: 1696 
ViewRoot(Handler).handleCallback(Message) line: 587 
ViewRoot(Handler).dispatchMessage(Message) line: 92 
Looper.loop() line: 123 
ActivityThread.main(String[]) line: 4627  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 521 
ZygoteInit$MethodAndArgsCaller.run() line: 868 
ZygoteInit.main(String[]) line: 626 
NativeStart.main(String[]) line: not available [native method] 

symptomRemedyActivity là một hoạt động trong dự án của tôi. Có cái gì tôi cần phải làm như nhập khẩu symptomRemedyActivity để startActivity có thể thấy symptomRemedyActivity, để loại bỏ "Activity Not Found Exception" này?

+0

Nếu bạn đang sử dụng nhật thực và/hoặc nhìn vào logcat nó sẽ hỏi bạn nếu bạn tuyên bố nó trong manifest – Falmarri

+0

Tôi đang sử dụng elip với logcat. Logcat không nói gì về bản kê khai. Tôi đã liệt kê đầu ra logcat trong câu hỏi của tôi cùng với đầu ra của cửa sổ Debug. –

Trả lời

36

Tôi biết đây là một bài đăng cũ, nhưng trên đầu trang của tìm kiếm của Google tại thời điểm này, vì vậy đối với bất kỳ ai đến đây sau: ActivityNotFound có thể là do các ngoại lệ chưa được xử lý trong số onCreate của bạn trong hoạt động bạn đang cố gắng để tạo. Phải mất một thời gian để tôi nhận thấy rằng tôi đã gây ra một nullPointerException ở đó, bởi vì tôi đã không tìm kiếm nó.

+0

Và điều này là chính xác những gì đã làm cho sự hỗn loạn cho tôi quá :-) – nemesisfixx

+1

Tôi sẽ upvote câu trả lời này một chục lần nếu tôi có thể. Tôi lãng phí quá nhiều thời gian kiểm tra gấp đôi, gấp ba, và bốn lần mà tôi đã khai báo chính xác hoạt động của tôi trong bản kê khai ứng dụng khi vấn đề thực sự là những gì bạn mô tả ở đây. – BradVoy

33

Bạn có liệt kê hoạt động (symtomRemedyActivity) trong tệp AndroidManifest.xml của mình không?

+0

Không. Tôi sẽ thử xem. –

+0

Tôi đã thêm hoạt động (symtomRemedyActivity) vào tệp AndroidManifest.xml của mình, đã làm mới và tôi vẫn gặp lỗi. –

+0

Đây chính là vấn đề tôi vừa gặp phải. – Jahmic

8

Hãy chắc chắn rằng bạn đã thêm dòng sau vào File Manifest

<activity 
     android:name=".YourActivity" 
     > 
    </activity> 
6

Bị mắc kẹt với các lỗi tương tự cho một giờ chỉ để nhận ra rằng tôi có để làm sạch và xây dựng lại. Rõ ràng, một số lần thay đổi trong xml không phản ánh cho đến khi chúng ta làm sạch và xây dựng lại.

0

Nếu hai hoạt động của bạn (symptomActivity và symptomRemedyActivity) nằm trong các gói khác nhau, bạn phải khai báo trong Android Manifest tên gói.

0

Tôi đang cố gắng bắt đầu SERVICE với startActivity(intent) và cùng một ngoại lệ xuất hiện. Để chạy DỊCH VỤ, sử dụng startService(intent)

2

Bạn chắc chắn quên tuyên bố hoạt động trong file manifest AndroidManifest.xml như sau (bạn cần phải tiêm các giá trị mà bạn thực sự có):

<activity 
     android:name="symptomRemedyActivity" 
     android:label="@string/title_activity_ symptomRemedy" 
     android:parentActivityName="MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="MainActivity" /> 
    </activity> 
0

Không chỉ cần bạn thêm Hoạt động của bạn trong AndroidMainifest.xml như sau:

<activity 
     android:name=".MyActivity" 
     ></activity> 

nhưng bạn cũng nên xác nhận đường dẫn gói của mình.

Ví dụ: hoạt động của tôi nằm trong gói com.demo. Người đứng đầu AndroidMainifest phải viết cùng một đường dẫn gói như sau:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.demo" 
    android:versionCode="1" 
    android:versionName="1.0" > 
0

Ngoài câu trả lời mà Unfrog đã đưa ra.

Một cách để có được NullPointerException là thực thi mã đề cập đến các phần xem trước setContentView().

0

Nhiều thẻ ứng dụng trong Tệp kê khai có thể gây ra điều này.

0
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.salvopaverani.databes" 
android:versionCode="1" 
android:versionName="1.1" > 

Ở tệp kê khai, tôi cố gắng thay đổi android: versionName từ 1.0 thành 1.1 và mọi thứ OK.

0

Tôi đã gặp phải vấn đề tương tự. Thư mục thùng rác và thư mục lib từ thư mục dự án, thư mục lib được tạo lại và thư mục được dán bất kỳ khi nào mọi thứ bắt đầu hoạt động. Đó là v4 lib là thủ phạm.

0

Hãy thử thêm hoạt động để AndroidManifest.xml

<activity android:name=".MyActivity" /> 
Các vấn đề liên quan