安裝apk時出現錯誤Failure [INSTALL_FAILED_DEXOPT]問題解決的方法


在android4.0源碼里面編譯出來apk后,用adb install (或adb install -r 重裝)安裝時,報錯[INSTALL_FAILED_DEXOPT]。

xu@xu-PC:~$ adb install workspace/out/target/product/generic/system/app/xxx.apk
2820 KB/s (225970 bytes in 0.078s)
    pkg: /data/local/tmp/xxx.apk
Failure [INSTALL_FAILED_DEXOPT]
或者

xu@xu-PC:~$ adb install -r workspace/out/target/product/generic/system/app/xxx.apk
2768 KB/s (225970 bytes in 0.079s)
    pkg: /data/local/tmp/xxx.apk
Failure [INSTALL_FAILED_DEXOPT]

這是因為在system\app下面的apk是經過優化的,而dex文件不會打包到apk中,dex文件會被優化后,生成odex文件。

下面就是程序經編譯之后,在workspace/out/target/product/generic/system/app/下生成的.odex和.apk兩個文件

Install: out/target/product/generic/system/app/xxx.odex
Install: out/target/product/generic/system/app/xxx.apk

這樣安裝apk時,就會缺少dex文件,導致報錯[INSTALL_FAILED_DEXOPT]。

-->解決辦法:

找到未優化過的apk,即在out/target/product/generic/obj/APPS/下找到對應的APP:

xu@xu-PC:~$ adb install workspace/out/target/product/generic/obj/APPS/xxx_intermediates/package.apk.unaligned
2400 KB/s (331697 bytes in 0.134s)
    pkg: /data/local/tmp/package.apk.unaligned
Success
xu@xu-PC:~$

如果已經安裝了該程序,可以重裝一下:

xu@xu-PC:~$ adb install -r workspace/out/target/product/generic/obj/APPS/xxx_intermediates/package.apk.unaligned
2873 KB/s (331689 bytes in 0.112s)
    pkg: /data/local/tmp/package.apk.unaligned
Success

 

這樣就安裝ok了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM