samedi 25 avril 2015

ActionBarActivity and ActivityUnitTestCase not working together

I'm trying to use ActivityUnitTestCase with ActionBarActivity. But doing that gives me the error: "java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity."

I have worked around this with the following code:

Context context = new ContextThemeWrapper(
        getInstrumentation.getTargetContext, R.style.AppTheme);
setActivityContext(context);

But then I get the following error, and can't find a way to avoid it:

java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{com.nutomic.ensichat.activities/com.nutomic.ensichat.activities.MainActivity}
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:284)
at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:153)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123)
at com.nutomic.ensichat.activities.EnsiChatActivity.onCreate(EnsiChatActivity.scala:22)
at com.nutomic.ensichat.activities.MainActivity.onCreate(MainActivity.scala:35)
at android.app.Activity.performCreate(Activity.java:5283)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158)
at com.nutomic.ensichat.activities.MainActivityTest.setUp(MainActivityTest.scala:36)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
Caused by: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{com.nutomic.ensichat.activities/com.nutomic.ensichat.activities.MainActivity}
at android.app.ApplicationPackageManager.getActivityInfo(ApplicationPackageManager.java:242)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:301)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:281)
... 17 more

The same test works fine if I use Activity instead of ActionBarActivity. How can I fix this problem?

Aucun commentaire:

Enregistrer un commentaire