繁体   English   中英

dex2oat在Android 6 / Marshmallow上失败 - 权限被拒绝 - 不是即时运行相关

[英]dex2oat Failing on Android 6/Marshmallow - Permission denied - Not instant run related

在我们的生产构建中(在CI服务器上完成,因此没有即时运行),用户报告该应用程序:

  • 安装需要很长时间(> 10分钟),可能永远不会完成

要么

  • 重新启动后,他们会在我们的应用程序安装后看到“优化应用程序1 of 1”。

有了他们的几个错误报告,共同的线程似乎是dex2oat进程失败:

dex2oat : /system/bin/dex2oat --compiler-filter=speed --dex-file=/data/app/**packagename**-1/base.apk --oat-file=/data/dalvik-cache/arm64/data@app@**packagename**-1@base.apk@classes.dex E dex2oat : Failed to create oat file: /data/dalvik-cache/arm64/data@app@**packagename**-1@base.apk@classes.dex: Permission denied 05-11 20:48:21.783 7316 7316 I dex2oat : dex2oat took 3.058ms (threads: 8) 05-11 20:48:21.793 7293 7293 W art : Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --compiler-filter=speed --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/**packagename**-1/base.apk --oat-file=/data/dalvik-cache/arm64/data@app@**packagename**-1@base.apk@classes.dex) because non-0 exit status

我们在多个制造商(三星,京瓷,黑莓)和手机上看到了这个问题。 到目前为止,我所有的错误报告都是针对Android 6.0.X的

  • Gradle版本:gradle-4.4
  • Gradle插件:'com.android.tools.build:grad:3.12'
  • compileSdkVersion 26
  • buildToolsVersion '27 .0.3'
  • minSdkVersion 19
  • targetSdkVersion 26
  • Multidex版本1.0.3

我知道几个 Bug在Instant Run周围有类似的症状,但我不相信这就是那个。 我在这里也看到了其他一些较旧的问题,但只有与Instant Run相关的问题有任何答案,或者它们与旧版本的插件/ gradle / build工具有关。

比较我们在开始获取这些报告之前的最新版本,我认为唯一可能相关的是我将Multidex库从1.0.2升级到1.0.3

当然,我完全无法在任何操作系统版本的任何测试设备上重现该问题,包括工厂重置它们。

任何人有任何想法,建议甚至尝试的事情? 我很快就没有想法了。

附加信息

终于得到了其中一个显然存在问题的设备,还有一些额外的事实:

  • 通过adb安装也会出现问题
  • 本地编译的二进制文件会出现此问题
  • 将二进制文件设置为debuggable true会导致安装从9:43到小于20秒。 即使我打开了诸如proguard和minification等其他设置,也是如此。

看起来像Gradle Plugin 3.1.2导致了问题

我能够确认这是android gradle插件版本3.1.2中的一个错误。 通过恢复到3.0.1,我能够编译相同的代码并立即成功地使用dex2oat。 此问题也出现在3.2.0-alpha15 gradle插件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM