gpt4 book ai didi

android - ActivityInstrumentationTestCase2 和 android 库项目 : resources fail to load

转载 作者:行者123 更新时间:2023-11-29 02:12:38 25 4
gpt4 key购买 nike

我有以下设置:

  • LibProjectWithActivity - 一个包含 PreviewActivity
  • 的 android 库项目
  • AppProject - 使用 LibProjectWithActivity
  • 的普通 Android 项目
  • AppProjectTest - 一个 Android JUnit 测试项目,它是一个 ActivityInstumentationTestCase2

首先:所有基本依赖项都已正确设置,因为我可以在模拟器中完美启动我的应用程序,它显示 PreviewActivity 一切正常,一切正常 - 这里没有问题。

但是我无法启动测试...这是设置:

public class PreviewActivityTest 
extends ActivityInstrumentationTestCase2<PreviewActivity> {
public PreviewActivityTest() {
// note: if i put "com.the7art.libprojectwithactivity" instead it wont find it
// and will fail with "activity not found"
super("com.the7art.appproject", PreviewActivity.class);
}

public void testDummy() {
getActivity();
}
}

这会抛出一个 NullPointerException 异常:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.the7art.appproject/com.the7art.libprojectwithactivity.PreviewActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
.......
Caused by: java.lang.NullPointerException
at com.the7art.libprojectwithactivity.PreviewActivity.onCreate(PreviewActivity.java:37)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
... 11 more

这里是行 PreviewActivity.java:36,37:

mButtonAdd = (Button) findViewById(R.id.button_add);
mButtonAdd.setOnClickListener(this);

那么这个异常的意思就是完美找到了R.id.button_add(在一个libproject中),但是找不到这个id的view。如果我注释掉这段代码,它会在尝试获取其他资源时发生类似的崩溃。

看起来测试使用了正确的 R.java,但使用了错误的 Context 对象。或者类似这样的东西。

同样,应用程序代码没问题,因为它可以在模拟器中运行,测试设置有问题...

有什么问题以及如何解决的提示吗?

最佳答案

是的,测试只能使用 Activity 项目作为目标,查看测试 list 文件中的 projectTarget。这意味着您的测试可以使用与您的应用程序相同的上下文。仅访问应用程序的项目资源。但是,您无法访问图书馆的项目资源,您可以使用图书馆项目中的 R.string.XX,因为这是第一次构建它,它只是一个生成的标识符,将在应用程序的上下文中用于查找资源。因此结果将是资源找到错误或资源未找到异常。有两种方法可以测试库项目,here they are

关于android - ActivityInstrumentationTestCase2 和 android 库项目 : resources fail to load,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com