【发布时间】:2018-12-07 02:40:33
【问题描述】:
我有搜索 stockoverflow 和谷歌没有运气。我最近将我的应用程序迁移到 androidx,经过大量努力,我能够修复所有构建失败的问题。但是现在在模拟器或设备上安装应用程序时出现以下错误。任何帮助将不胜感激。
我尝试了以下方法: 使缓存无效/重新启动 干净的构建和重建项目 从设备上卸载的应用程序 重启我的电脑
Exception occurred while executing:
java.lang.IllegalArgumentException: Error: Failed to parse APK file: /data/local/tmp/...
at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:338)
at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:906)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:158)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21328)
at android.os.Binder.shellCommand(Binder.java:634)
at android.os.Binder.onTransact(Binder.java:532)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2821)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3856)
at android.os.Binder.execTransact(Binder.java:731)
Caused by: android.content.pm.PackageParser$PackageParserException: Failed to parse /data/local/tmp/...
at android.content.pm.PackageParser.parseApkLiteInner(PackageParser.java:1590)
at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1575)
at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:331)
... 9 more
$ adb shell pm uninstall ...
Unknown failure (at android.os.Binder.execTransact(Binder.java:731))
Error while Installing APK
【问题讨论】:
-
logcat 的输出可能会在堆栈跟踪之前给出一些问题的指示。
-
嗨 Pierre,感谢您的回复,这是发生错误时的一些 logcat 输出 2018-12-07 08:10:16.541 2049-5709/system_process W/ResourceType: Bad string block :最后一个字符串不是以 0 结尾的 2018-12-07 08:10:16.541 2049-5709/system_process E/system_server: RES_STRING_POOL_TYPE 损坏。 2018-12-07 08:10:16.541 2049-5709/system_process E/system_server: 无法在 APK '/data/local/tmp/...中加载 'resources.arsc' ...
-
@Pierre 这些是 logcat 2018-12-07 09:14:03.134 1109-9002/ 中的错误? E/system_server:RES_STRING_POOL_TYPE 损坏。 2018-12-07 09:14:03.134 1109-9002/? E/system_server: 无法在 APK '/data/local/tmp/.... 中加载 'resources.arsc'。 --------- 系统开始 2018-12-07 09:14:06.288 31289- 31289/? E/ogle.android.g:由于进程无法加载 jdwp 代理,因此未启动调试器。 2018-12-07 09:14:06.732 2900-31340/? E/ndroid.systemu: 无效 ID 0x00000000...
-
看起来您的构建系统在构建有效资源表时遇到了问题。你在使用 Gradle 吗?如果有,是哪个版本?如果没有,您使用什么来构建 APK?
-
@Pierre,非常感谢 Pierre,我非常感谢您的帮助,因为这个问题对我来说真的很难弄清楚。很好的问题,我正在使用 Gradle,我实际上可以使用 Gradle 版本 3.1.4(构建应用程序时的原始版本)安装它,但是当我升级到 Gradle 3.2.1 时,它正在下降。到目前为止,我尝试解决此问题的步骤:删除了 user/.graddle/caches 中的 Gradle 缓存并卸载,然后重新安装了 android studio,但没有成功。我也未从 androidx 迁移,它在 gradle 3.1.4 中工作,但在 gradle 3.2.1 中出现此错误
标签: android migration apk androidx