为啥 Application.getContext() 返回 null? [复制]
Posted
技术标签:
【中文标题】为啥 Application.getContext() 返回 null? [复制]【英文标题】:Why does Application.getContext() return null? [duplicate]为什么 Application.getContext() 返回 null? [复制] 【发布时间】:2019-11-17 20:12:25 【问题描述】:您好,我正在实现 SDK,我需要一些代码的上下文,因此,为了访问上下文,我在 Application 类中实现了它:
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);
对此有什么想法?
谢谢
【问题讨论】:
【参考方案1】:像这样将你的 SDKApp 类添加到你的清单应用程序标签中
<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">
【讨论】:
【参考方案2】:确保您的SDKApp
已在AndroidManifest.xml
中注册,例如
<application
android:name="SDKApp"
然后你可以调用SDKApp.getContext()
否则你总是从SDKApp.getContext()
得到空值
谢谢。
【讨论】:
以上是关于为啥 Application.getContext() 返回 null? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 glTranslatef?为啥不直接更改渲染坐标?
为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?