Robolectric 3.0 Nullpointer on DefaultPackageManager.getActivityInfo()

徘徊边缘 提交于 2019-12-23 03:05:21

问题


I try to create a Robolectric test (3.0-rc02) for the following Activity:

public class NotificationActivity extends ActionBarActivity {

private NotificationFragment fragment;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notification);
}
}

The test is looking like this:

@Config(manifest = IConfig.MANIFEST_PATH, emulateSdk = IConfig.SDK_VERSION, reportSdk = IConfig.SDK_VERSION)
@RunWith(RobolectricTestRunner.class)
public class AbstractFragmentTest {

    @Test
    public void test() {
        Robolectric.buildActivity(NotificationActivity.class).setup().visible();
    }

where SDK_VERSION = 18.

When running the test, I get this error:

java.lang.NullPointerException
    at org.robolectric.res.builder.DefaultPackageManager.getActivityInfo(DefaultPackageManager.java:164)
    at org.robolectric.util.ActivityController.getActivityInfo(ActivityController.java:65)
    at org.robolectric.util.ActivityController.attach(ActivityController.java:51)
    at org.robolectric.util.ActivityController$1.run(ActivityController.java:121)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:309)
    at org.robolectric.shadows.CoreShadowsAdapter$2.runPaused(CoreShadowsAdapter.java:47)
    at org.robolectric.util.ActivityController.create(ActivityController.java:118)
    at org.robolectric.util.ActivityController.create(ActivityController.java:129)
    at org.robolectric.util.ActivityController.setup(ActivityController.java:210)
    at com.viae.common.view.AbstractFragmentTest.test(AbstractFragmentTest.java:31)

Anyone knows what I'm doing wrong over here?

Issue solved

Using FragmentActivity in stead of ActionBarActivity did the trick to me. My main logic is in a fragment (DialogFragment) inside the activity. Both activities are supporting the DialogFragment, so for my functional tests it doesn't matter which of the 2 parent activities I use.


回答1:


ActionBarActivity is deprecated. Use AppCompatActivity instead



来源:https://stackoverflow.com/questions/29668303/robolectric-3-0-nullpointer-on-defaultpackagemanager-getactivityinfo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!