【问题标题】:ActionBarActivity & ActivityUnitTest - NameNotFoundExceptionActionBarActivity & ActivityUnitTest - NameNotFoundException
【发布时间】:2014-02-06 18:55:01
【问题描述】:

好吧...这更有可能是我的错;)

当我这样做时:

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)

请注意,我的 Main 活动是在 .gui 下定义的,而清单中的主包是一个文件夹,这就是我在意图中指定所有内容的原因。但是抛出的错误似乎仍然得到错误的 (Package,Class) 名称对。

【问题讨论】:

    标签: android android-testing android-actionbar-compat


    【解决方案1】:

    确实是我的错...将startActivity 切换为:

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

    解决了我所有的问题。

    【讨论】:

    • 发生在我身上的是:我在工作应用程序中有一个活动 A。我有一个活动 B,它在 junittest 应用程序中扩展了 A。我正在使用 ActivityUnitTestCase 测试活动 B,但我没有将活动 B 添加到我的 junit 测试应用程序的清单文件中。添加它并且 PackageManager$NameNotFoundException 消失了。
    猜你喜欢
    • 2014-09-05
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多