无法打开dex文件,无法识别的版本号

时间:2016-12-19 13:19:23

标签: android logcat dex packageinstaller

我已经将apk推送到我的电视盒上的system / priv-app,但是当我尝试卸载应用程序时出现此错误:

dex2oat : Failed to create oat file: /data/dalvik-cache/arm/system@priv-app@CanvasPackageInstaller@CanvasPackageInstaller.apk@classes.dex: Permission denied
dex2oat : dex2oat took 803.750us (threads: 4)
art     : Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a9 --instruction-set-features=default --dex-file=/system/priv-app/CanvasPackageInstaller/CanvasPackageInstaller.apk --oat-file=/data/dalvik-cache/arm/system@priv-app@CanvasPackageInstaller@CanvasPackageInstaller.apk@classes.dex) because non-0 exit status
art     : Failed to open dex file '/system/priv-app/CanvasPackageInstaller/CanvasPackageInstaller.apk' from memory: Unrecognized version number in /system/priv-app/CanvasPackageInstaller/CanvasPackageInstaller.apk: 0 3 7 

我试图清理dalvik-cache,但没有成功。这是什么意思?

3 个答案:

答案 0 :(得分:1)

dex格式的037版本是在N时间帧中引入的。 Android版本低于N的设备无法读取它。

答案 1 :(得分:1)

对我来说,我在将使用 Android 11 设备构建的调试 apk 安装到 Android 8 设备时遇到了类似的错误。

解决这个问题的两种方法:

  1. 连接目标设备并在 Android Studio 中重建应用。
  2. 从命令行清理和构建,然后将输出的 apk 安装到目标设备。

这可能不会发生在发行版 apk 中。

答案 2 :(得分:0)

在我的情况下,通过启用Instant Run解决了问题。 在每次应用程序启动时都有提示(安装Android 7平台即时运行/继续而不立即运行)。当我按SKIP时,某些apks有相同的异常(dex版本... bla-bla)。安装适当的平台被驳回异常。