У меня есть следующие настройки:
- 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) идеально найден, но представление по этому идентификатору не может быть найдено.Если я закомментирую этот код, то при попытке получить другой ресурс он будет схожим образом.
Похоже, что тест использует правильный R.java, но неправильный объект Context.Или что-то вроде этого.
Опять же, код приложения в порядке, потому что он работает в эмуляторе, что-то не так с настройкой теста ...
Любые подсказки о том, что не так и как исправитьэтот?