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

INSTALL_FAILED_DEXOPT

如何解决这种错误?


当前回答

我得到了同样的错误,并通过增加内部存储的大小来修复它。

内部存储最初设置为32MB(我知道),然后我在上面安装了几个apks,这比需要安装的apks所留下的空间要小。

其他回答

这里有很多答案,但也许能帮到别人 我有这个问题与真正的设备和问题是与D8

试着把这个添加到你的gradle中。它对我有用

android.enableD8=false
android.enableD8.desugaring= 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

也许这个会有帮助:

在启动模拟器之前擦除用户数据 清理项目 删除不需要的依赖项....

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

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

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

确保你已经安装了所有你需要的SDK,并且Gradle瞄准了正确的版本。

我也遇到过同样的问题,但这是由于我将设备更新到Android 5.0,然后忘记更改所有的构建来针对它。