为什么 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()
得到空值
谢谢。
你好,我正在实施 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()
谢谢。