在Google Play开发者控制台的“崩溃和ANR”中,我得到了这样的报告:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetManager android.content.res.Resources.getAssets()' on a null object reference
at android.app.LoadedApk.getAssets(LoadedApk.java:590)
at android.app.LoadedApk.makeApplication(LoadedApk.java:646)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5088)
at android.app.ActivityThread.access$1600(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)
出现此问题的设备是Galaxy S4,并且运行Android 5.0
可能是什么-我的代码中没有一行,为什么会失败?
非常感谢!
最佳答案
我的控制台中也有这个。
当用户在当前正在更新或之后更新应用程序时启动该应用程序时,似乎会发生这种情况。
可能的解决方法是检查getResources在应用程序启动时是否返回null,并在执行该操作时将其杀死:
public class DevToolsApplication extends Application {
private static final String TAG = "DevToolsApplication";
@Override
public void onCreate() {
super.onCreate();
AppLogger.i(TAG, "app start...");
checkAppReplacingState();
}
private void checkAppReplacingState() {
if (getResources() == null) {
AppLogger.w(TAG, "app is replacing...kill");
Process.killProcess(Process.myPid());
}
}
}
请参阅此以获取更多信息
https://issuetracker.google.com/issues/36972466
关于android - 启动应用程序时,Android代码中的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31439228/