我已按照此链接中的说明将我的应用程序切换为MultiDexApplication - https://developer.android.com/studio/build/multidex.html。
现在应用程序安装正确,但我的应用程序上下文为空。你们有没有经历过这样的事情?
如果您需要代码示例,请告诉我,但由于应用程序因无法获取应用程序上下文而崩溃,我无法想到任何可以解释此问题的代码。
获取我的应用程序上下文如下:
TrackerApplication.getContext();
public class TrackerApplication extends MultiDexApplication {
private static Context context;
public TrackerApplication() {
super();
context = this;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
public static Context getContext() {
return context;
}
}
然后我打电话:
TrackerApplication.getContext().getSharedPreferences("MySettings",
Context.MODE_PRIVATE);
我得到一个NullPointer。我的应用程序上下文为空。
添加了一个测试来解释这个问题。在我的Launch活动中,我添加了以下代码:
if (TrackerApplication.getContext() == null) {
Log.i("TEST", "Context is null");
} else {
Log.i("TEST", "What is the issue?");
}
LogCat始终打印出Context is null
。
答案 0 :(得分:0)
通过执行以下操作结束修复此操作: 1-从app完全删除了multidex代码。 2-清理项目。 3-建造项目。 4-再次将所有multidex代码添加到项目中。 5-再次清理并重建项目。 6-之后才开始工作..
不知道为什么它第一次没有工作,但现在它工作正常。