2014-02-06 54 views
2
的NameNotFoundException好的

...它更可能是我的錯;)ActionBarActivity&ActivityUnitTest -

當我這樣做:

public class XmlLifecycleTests extends ActivityUnitTestCase<Main> { 
... 
    (not in setUp) 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_LAUNCHER); 
    intent.setPackage(APP_PACKAGE); 
    intent.setClassName(APP_PACKAGE, ".gui.Main"); 
    startActivity(intent, null, null);  

我得到:

java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{ar.android.app.gui/ar.android.app.gui.GLarmMain} 
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:282) 
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:119) 
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58) 
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) 
at ar.android.app.gui.Main.onCreate(Main.java:78) 
at android.app.Activity.performCreate(Activity.java:5133) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158) 

注意,我主活動在.gui下定義,而清單中的主包是一個文件夾,這就是爲什麼我在意圖中指定了所有內容。但引發的錯誤似乎仍然得到錯誤的(Package,Class)名稱對。

回答

4

這確實是我的錯......切換startActivity到:

setActivity(launchActivity(pkg, actClass, null));

解決了所有我的問題。

+1

發生在我身上的是:我在工作應用程序中有一個活動A.我有一個活動B,它在最簡單的應用程序中擴展了A。我正在使用ActivityUnitTestCase來測試活動B,但是我的junit測試應用程序中沒有將活動B添加到我的清單文件中。添加它並且PackageManager $ NameNotFoundException消失。 – flobacca

相關問題