Android 应用程序因 ResourceNotFoundException 而崩溃

标签 android crash android-resources callstack

我最近检查了我的 GP 崩溃日志,我经常收到这个调用堆栈。请你帮助我好吗。

一些事情:

  • 添加资源路径失败有时显示/data/app/com.xxx.xxx.xxx-x/base.apk,有时显示/mnt/asec/com.xxx.xxx.xxx-x/base.apk.
  • 设备的安卓版本(报告的地方)不同于安卓 4.4。到 Android 7.0
  • 在 GP 控制台中,Android 版本 显示所有崩溃的 Android 7.0,但设备列表包含 Android 版本 6.0、5.0、等等不清楚。
  • 我有两个具有共享用户 ID 的应用程序,例如包名称 P1、P2。对于P1,添加资源路径失败有时显示/data/app/P2,有时显示/mnt/asec/P1。这不是不正确吗?是什么原因导致的?

调用堆栈:

java.lang.RuntimeException: Unable to create BackupAgent android.app.backup.FullBackupAgent: android.content.res.Resources$NotFoundException: failed to add asset path data/app/com.P2.xxx/base.apk
    at android.app.ActivityThread.handleCreateBackupAgent(ActivityThread.java:3452)
    at android.app.ActivityThread.-wrap5(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6688)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Caused by: android.content.res.Resources$NotFoundException: failed to add asset path /data/app/com.P2.xxx/base.apk
    at android.app.ResourcesManager.createAssetManager(ResourcesManager.java:281)
    at android.app.ResourcesManager.createResourcesImpl(ResourcesManager.java:359)
    at android.app.ResourcesManager.getOrCreateResources(ResourcesManager.java:638)
    at android.app.ResourcesManager.getResources(ResourcesManager.java:730)
    at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:2068)
    at android.app.LoadedApk.getResources(LoadedApk.java:780)
    at android.app.ContextImpl.<init>(ContextImpl.java:2244)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2184)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2175)
    at android.app.ActivityThread.handleCreateBackupAgent(ActivityThread.java:3422)

另一个崩溃:

android.content.res.Resources$NotFoundException: failed to add asset path /mnt/asec/com.P1.xxx/base.apk
    at android.app.ResourcesManager.createAssetManager(ResourcesManager.java:281)
    at android.app.ResourcesManager.createResourcesImpl(ResourcesManager.java:359)
    at android.app.ResourcesManager.getOrCreateResources(ResourcesManager.java:638)
    at android.app.ResourcesManager.getResources(ResourcesManager.java:730)
    at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:2052)
    at android.app.LoadedApk.getResources(LoadedApk.java:787)
    at android.app.ContextImpl.<init>(ContextImpl.java:2266)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2210)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2196)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5861)
    at android.app.ActivityThread.-wrap3(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1710)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6776)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)

最佳答案

请检查App是否有外置驱动权限。 在我的例子中,这个问题是在 ADB 将应用程序安装到屏幕锁定的设备时触发的,当设备处于唤醒状态时,同样的测试已经通过,所以即使这个应用程序可用的权限

关于Android 应用程序因 ResourceNotFoundException 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44016165/

相关文章:

database - 安卓。如何保护你的数据库?

ios4 - 应用程序在特定行崩溃,为什么?

python - Boost.Python : __init__ accepting None argument

Android ActionBar 菜单 : Prevent onPressed Color

android - 如何在android中获取和设置字符串资源值

android-studio - 从整数资源文件设置布局引力

android - 在 Android 中获取 NFC 硬件 ID

android - 如何在全局范围内更改首选项图标颜色 Android

java - 从 android telegram 源发送消息到特定用户 ID

iphone - 线程问题(EXC_BAD_ACCESS)