Android 应用程序因 ResourceNotFoundException 崩溃

问题描述 投票:0回答:2

我最近检查了 GP 崩溃日志,并且非常频繁地收到此调用堆栈。请你帮助我好吗。

一些事情:

  • failed to add asset path
    有时显示
    /data/app/com.xxx.xxx.xxx-x/base.apk
    ,有时显示
    /mnt/asec/com.xxx.xxx.xxx-x/base.apk
  • 设备 Android 版本(据报道)与 Android 4.4 不同。到安卓7.0
  • 在 GP 控制台中,对于所有崩溃,
    Android version
    显示
    Android 7.0
    ,但设备列表中包含
    Android version
    6.0、5.0 等设备,尚不清楚。
  • 我有两个具有共享用户 ID 的应用程序,例如包名称为 P1、P2。对于 P1,
    failed to add asset path
    有时显示
    /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)
android crash android-resources callstack
2个回答
0
投票

请检查App是否有外置硬盘权限。 就我而言,当 ADB 将应用程序安装到屏幕锁定的设备时,会触发此问题,当设备唤醒时,相同的测试已通过,因此即使该应用程序可用的权限


0
投票

我遇到了

com.android.billingclient:billing
的错误。问题是“设备中没有帐户”,例如新设备或重置为供应商设置。

所以只需在全局设置中添加一个帐户即可。

© www.soinside.com 2019 - 2024. All rights reserved.