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

INSTALL_FAILED_DEXOPT

如何解决这种错误?


当前回答

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

其他回答

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

在build.gradle 更改已编译并构建到最新版本。这对我很有效。

================

android {
    compileSdkVersion 22
    buildToolsVersion "22"

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

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

android.enableD8=false
android.enableD8.desugaring= false

我添加了下面的行到gradle。属性文件,问题得到解决:

android.enableD8=false 
android.enableD8.desugaring= false

我在真正的设备上运行这个应用程序。

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

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