我有以下設置:ActivityInstrumentationTestCase2和android庫項目:資源加載失敗
- LibProjectWithActivity - 一個Android庫項目包含PreviewActivity
- AppProject - 平常的Android項目,該項目使用LibProjectWithActivity
- 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)是PE完全找到,但通過此ID查看無法找到。如果我註釋掉這段代碼,當嘗試獲取另一個資源時它會崩潰。
看起來像測試使用右R.java,但錯誤的上下文對象。或者類似的東西。
再次,應用程序代碼是好的,因爲它工作在模擬器,什麼是錯與測試設置...
任何提示什麼是錯的,如何解決這一問題?