我正在使用Android 2.2开发一个Android应用程序,我的应用程序APK大小是22.5 MB,我想为三星平板电脑创建一个新的构建。我得到了以下错误:
INSTALL_FAILED_DEXOPT
如何解决这种错误?
我正在使用Android 2.2开发一个Android应用程序,我的应用程序APK大小是22.5 MB,我想为三星平板电脑创建一个新的构建。我得到了以下错误:
INSTALL_FAILED_DEXOPT
如何解决这种错误?
当前回答
我在一个真实的设备上进行了错误测试。清理缓存/卸载,重新启动一切都不适合我,删除构建文件夹的内容可以:)(Android工作室)
其他回答
我有这个问题时,有一些Unicode字符在我的方法名称(由于,所有的事情,复制/粘贴从powerpoint文件),Dalvik不喜欢。在尝试安装APK时,您可以通过查看Logcat输出来了解这一点。
这是在一个真实的设备上。
因为这似乎是我自己遇到过多次的问题,这次没有一个分享的解决方案对我有帮助,我仍然会发布一些对我个人有帮助的东西,以及我认为将来可能会帮助其他人的东西:
进入项目目录,找到build/intermediates/dex-cache/cache文件。删除它——顾名思义,这是一个缓存的dex文件,如果你改变了项目的依赖关系,构建工具版本等,它可能已经过时了。
在构建中启用jumboMode标志(dex.force.jumbo=true)后,我遇到了这个问题。在更新的Android设备上一切正常,但在Gingerbread上安装失败。
因此,如果你的应用程序由于烦人的65k限制而需要巨型模式,尝试删除一些未使用的代码/字符串,并将巨型模式设置为false。
INSTALL_FAIL_DEXOPT通常与放在classes.dex上的限制有关。在ics之前的任何版本上,dexopt在超过5 MB的地方都会失败。最近版本的Android使用8或16 MB的缓冲区。
检查APK中classes.dex的大小。看看方法计数是多少也很好,因为dex有65536个方法/字段限制。
引用:
安装应用程序时出现错误
https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
如何缩小代码- 65k方法限制在dex
这里有很多答案,但也许能帮到别人 我有这个问题与真正的设备和问题是与D8
试着把这个添加到你的gradle中。它对我有用
android.enableD8=false
android.enableD8.desugaring= false