10

我發現有幾個線程報告類似的問題,但none of them真的提供了一些我還沒有嘗試過的東西。ActivityNotFoundException(YES,這個活動在AndroidManifest.xml中聲明)

一個無辜的催繳:

mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 

與在AndroidManifest.xml如下:

<application> 
    <activity android:name="MyActivityLib" /> 
    <activity android:name="com.example.baseapp.MyEditPreferences" android:label="@string/app_name"> 
    </activity> 
</application> 

觸發以下異常:

06-14 14:06:50.297: ERROR/AndroidRuntime(9272): 
android.content.ActivityNotFoundException: Unable to find explicit activity class 
{com.example.baseapp.paypal/com.example.baseapp.MyEditPreferences}; 
have you declared this activity in your AndroidManifest.xml? 

的一件事情是,此代碼中使用在我將其從單一的應用程序項目改爲2部分的項目之前完美地工作由一個圖書館項目和一個應用程序項目組成。

AndroidManifest.xml是項目中的一個。

我需要做些什麼消除這個ActivityNotFoundException

+1

Whats com.example.baseapp.paypal ??你使用一些貝寶庫嗎? – 2011-06-14 19:05:33

+0

@Ravi Vyas是的,我是。這是我將整體應用程序項目打破爲2部分的主要原因:所有Android市場都通用的庫和針對每個Android市場或應用程序定製的小型應用程序項目(活動類源自庫活動類) 。你注意到了什麼嗎? – an00b 2011-06-14 19:09:22

+0

我不相信你可以創建一個類似於不同包的類的調用。 – Maximus 2011-06-14 19:10:51

回答

14

我剛解決了這個問題。

我不得不這樣做是FQN添加到應用項目的AndroidManifest.xml

<activity android:name="com.example.baseapp.MyEditPreferences" 
      android:label="com.example.baseapp.MyActivityLib:string/app_name"> 
</activity> 

事實上,我在圖書館項目AndroidManifest.xml徹底刪除任何參考MyEditPreferences,它仍然有效。

它還與原startActivity 1行語句:

mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 

結論:這是重要的應用程序的AndroidManifest.xml,而不是圖書館。

+2

這就是它在文檔中所說的。 – 2011-06-14 22:10:39

+1

文檔中的哪些地方會這樣說?你能提供一個鏈接嗎? – 2012-02-06 17:03:52

+0

它寫在:http://developer.android.com/tools/projects/projects-eclipse.html – user1324936 2013-11-24 12:47:31

1

也許這會工作?

Intent mIntent = new Intent(); 
mIntent.setClassName(mActivity, "com.example.baseapp.MyEditPreferences"); 
mActivity.startActivity(mIntent); 
+0

感謝和+1的建議。我只是試了一下,並沒有幫助。我還發現一個線程描述了一個令人難以置信的類似問題:http://stackoverflow.com/questions/5363548/activitynotfound-exception-thrown-for-a-preferenceactivity-listed-in-the-manifest/5363603#5363603 FQN方法工作他,但並沒有爲我解決問題。任何其他想法? – an00b 2011-06-14 19:56:54

-1

我知道這是一個非常老的線程,但我剛剛有同樣的問題。在我來說,我不得不這樣做是爲了刪除虛假

import java.util.prefs.Preferences; 
0

如果您使用的名稱包含在Android包中的類(設置,偏好,活動,...),你就需要把這個:

Intent i = new Intent(this, <name_of_your_package>.classname.class); 

如果你不把「name_of_your_package」,編譯器會認爲你是指的在Android包類(機器人*)。

-2

只需檢查您的清單,找出IDE未指向的錯誤。

相關問題