在我们的生产版本中(在CI服务器上完成,因此没有即时运行),用户 报告该应用程序:
或
此时有几个bug报告,共同的线程似乎是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
我知道Several Bugs在Instant Run周围有类似的症状,但我不相信这就是那个。我在这里也看到了其他一些较旧的问题,但只有与Instant Run相关的问题有任何答案,或者它们与旧版本的插件/ gradle / build工具有关。
比较我们开始收到这些报告之前的最新版本,我认为唯一可能相关的是我将Multidex库从1.0.2
升级到1.0.3
。
当然,我完全无法在我的任何测试设备上重现任何操作系统版本的问题,包括出厂重置。
任何人都有任何想法,建议或甚至尝试的事情?我很快就没有想法了。
附加信息最终得到了其中一个明显存在问题的设备,还有其他一些事实:
adb
安装debuggable true
会导致安装从9:43转到不到20秒。即使我打开了诸如proguard和minification之类的其他设置,也是如此。答案 0 :(得分:0)
看起来Gradle Plugin 3.1.2导致了问题
我能够确认这是android gradle插件中的一个错误 版本3.1.2。通过恢复到3.0.1,我能够编译相同的 代码并立即成功地使用它dex2oat。这个问题是 也出现在3.2.0-alpha15 gradle插件中。