我正在使用Android 2.2开发一个Android应用程序,我的应用程序APK大小是22.5 MB,我想为三星平板电脑创建一个新的构建。我得到了以下错误:

INSTALL_FAILED_DEXOPT

如何解决这种错误?


当前回答

您正在安装的应用程序的旧版本有已更改的依赖库/ jar。我在更新我的应用程序引用的其他jar文件时遇到了这个问题。

你将需要卸载旧版本,然后你应该没有更多的问题…

设置—>应用程序—>管理应用程序—>[找到并卸载您的应用程序]

INSTALL_FAILED_DEXOPT错误不应该爆发。就像

[2011-06-14 01:23:40 - ProtectYourself] Installing ProtectYourself.apk...
[2011-06-14 01:24:26 - ProtectYourself] Installation error: INSTALL_FAILED_DEXOPT
[2011-06-14 01:24:26 - ProtectYourself] Please check logcat output for more details.
[2011-06-14 01:24:26 - ProtectYourself] Launch canceled!

呜。

其他回答

对我来说,这似乎与磁盘空间有关。新推出的5.1仿真器启动时出现了“磁盘空间不足”错误——查看仿真器属性,为内部存储分配的默认空间是800MB,这看起来很低。

因此,解决方案是增加内存(我增加到4GB)。奇怪的是,模拟器仍然引导相同的磁盘空间警告,但出厂重置(设置->备份和恢复在模拟器内部)完全解决了我的问题。

只是有点奇怪,它不能在默认设置下开箱即用。

我已经更改了android版本4对sdk 21的支持,并出现了这个错误。所以我回到了旧版本(21年前)的支持版本,它工作了。该错误只发生在android 2.3

给任何搜索关键词“房间”的人。我在实现Room来管理数据库时遇到了这个问题。原因是我从Android文档中复制了所有依赖项。只复制你需要的文件。如果您没有使用Kotlin或番石榴,只需添加:

implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
testImplementation "androidx.room:room-testing:$room_version"

如果你使用Android Studio,尝试清理你的项目:

建立>清洁项目

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