为什么 Application.getContext() return 为空?

Why does Application.getContext() return null?

你好,我正在实施 SDK,我需要一些代码的上下文,因此,为了访问上下文,我在应用程序中实现了它 class:

public class SDKApp extends Application {

    private static SDKApp sdkContext;

    public static Context getContext() {
        return sdkContext;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        sdkContext = this;

    }

}

为了测试这个,我使用 Robolectric,但上下文返回空值:

@RunWith(RobolectricTestRunner.class)
public class CallTest {

    private Context context = RuntimeEnvironment.application;

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

            Context context = SDKApp.getContext();

            assertNotNull(context);
        }
    }
}

对此有什么想法吗?

谢谢

像这样将您的 SDKApp Class 添加到您的清单应用程序标签中

<application
        android:name="SDKApp" // your complete package path to your SDKApp
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

确保您的 SDKApp

一样在 AndroidManifest.xml 中注册
<application
    android:name="SDKApp"

然后你可以调用 SDKApp.getContext() 否则你总是从 SDKApp.getContext()

得到空值

谢谢。