ActivityInstrumentationTestCase2和android库项目:资源加载失败

|| 我有以下设置: 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的视图。如果我注释掉此代码,则在尝试获取其他资源时也会类似地崩溃。 看起来测试使用正确的R.java,但是错误的Context对象。或类似的东西。 同样,该应用程序代码还可以,因为它可以在仿真器中工作,所以测试设置有问题... 关于什么是错以及如何解决此问题的任何提示?     
已邀请:
        是的,测试只能使用Activity项目作为目标,请查看测试清单文件中的projectTarget。 这意味着您的测试可以使用与应用程序相同的上下文。仅访问应用程序的项目资源。但是,您无法访问Library的项目资源,可以使用来自Library的项目中的R.string.XX,因为它是最初构建的,并且只是生成的标识符,在应用程序的上下文中用于查找资源。因此,结果将是找到的资源有错误或资源未找到异常。 有两种测试库项目的方法,它们是     

要回复问题请先登录注册