Robolectric 没有调用 Application.onCreate(),我无法获取上下文

Robolectric dosen't calling Application.onCreate(), and I cannot get context

你好我有以下项目结构

--App
   |--SDK1
   |--SDK2

在应用程序中我有一些检查 SDK1 和 SDK2 的测试。

在 SDK 中,我有一个单例模式,仅用于通过 App.

中的应用程序 class 设置上下文

并且上下文设置在SDK1.singleton中App.Application.onCreate

问题是,当我尝试执行以下代码时,我总是得到 null:

@RunWith(RobolectricTestRunner.class)
public class CallTest {

    @Before
    public void setUp() throws Exception {}

    @Test
    public void connectToSocketTest() {
        if (BuildConfig.FLAVOR.equals("dev")) {

            Context context = SDK1.getInstance().getContext();

            assertNotNull(context);
        ...

知道为什么会发生这种情况吗?如何解决?

这不是使用 robolectric 在 Android 中获取应用上下文的推荐方法。您可以使用以下代码获取 activity...

Activity activity = Robolectric.setupActivity(MyActivity.class);

要获取应用上下文,只需调用 activity.getApplicationContext()

EDIT1: If you're using the latest Robolectric version, use Robolectric.buildActivity(DashboardActivity.class) instead.

EDIT2: Make sure your SDK1 extends MultiDexApplication". Add this @Config(manifest=Config.NONE, application = App.class, sdk = 17)` to the top of your test class.

如果有效请告诉我。