android - ActionBarActivity 和 ActivityUnitTest - NameNotFoundException

标签 android android-testing android-actionbar-compat

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

当我这样做时:

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 Activity 是在 .gui 下定义的,而 list 中的主包是上一个文件夹,这就是我在 Intent 中指定所有内容的原因。但抛出的错误似乎仍然得到错误的(Package,Class)名称对。

最佳答案

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

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

解决了我所有的问题。

关于android - ActionBarActivity 和 ActivityUnitTest - NameNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21611539/

相关文章:

java - 带泛型的数组

android - Intellij Idea 12 未生成 R.java

android - 在使用 Espresso 进行测试时,如何登录我的应用程序一次然后执行所有测试套件?目前,应用程序会为每个测试重新启动

android - 使用 Gradle 测试 Android 库

android - 与 Gradle 相比,使用 Bazel 的额外优势是什么?

android - 使用 ActionBarCompat 时 ActionBar 文本颜色发生变化

java - Android:使默认全息按钮不透明

java - 更改字符串后获取 "FATAL EXCEPTION: main"

android - Actionbar (android.support.v7) 填满整个屏幕

java - 从 Fragment (ActionBarCompat) 内部调用 getSupportActionBar() 时出现 NullPointerException