Lun*_*box 6 android android-multidex
我已按照此链接中的说明将我的应用程序切换到 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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后当我打电话时:
TrackerApplication.getContext().getSharedPreferences("MySettings",
Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
我得到一个空指针。我的应用程序上下文为空。
添加了一个测试来解释这个问题。在我的 Launch 活动中,我添加了以下代码:
if (TrackerApplication.getContext() == null) {
Log.i("TEST", "Context is null");
} else {
Log.i("TEST", "What is the issue?");
}
Run Code Online (Sandbox Code Playgroud)
LogCat 总是打印出来Context is null。
最终通过执行以下操作解决了此问题:1-从应用程序中完全删除了 multidex 代码。2-清理项目。3-已建项目。4-再次将所有 multidex 代码添加到项目中。5-再次清理并重建项目。6- 之后就开始工作了..
不知道为什么第一次不起作用,但现在可以正常工作了。
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |