簡體   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