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

INSTALL_FAILED_DEXOPT

如何解决这种错误?


当前回答

在我的案例中,问题发生在一些运行API 21和22的设备上。在应用程序标签下的manifest中设置android:vmSafeMode="true"解决了这个问题。但是,不建议发布版本使用它,所以我在values文件夹中创建了两个xml文件。旧API的默认值:

<resources>
    <bool name="vm_safe_mode">true</bool>
</resources>

API的>= 23值为假,也是如此。在这种情况下,操作系统更新的设备不会受到影响,旧的设备至少可以工作。

其他回答

考虑使用proguard来缩小APK。如果我试图在旧的三星Galaxy Ace 2.3.6设备上安装25MB以上的APK,而没有使用proguard收缩/优化代码,我也会遇到同样的问题。

Jumbo模式和重新启动设备无效。

当我尝试在2.3设备上安装时遇到了这个问题(在4.0.3上没问题)。它最终是因为我正在使用的lib项目有多个jar,这些jar用于android中已经存在的东西,例如HttpClient和XML解析器等。看着logcat让我发现这个,因为它告诉我它正在逃课,因为他们已经存在了。很好的无用的原始错误!

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

试试我的答案https://stackoverflow.com/a/34918549/3737254

如果你使用android studio 2.0,禁用即时运行。

仅供参考,即时运行是android studio 2.0的新功能(我从未使用过>。<)

如何禁用:首选项->构建,执行和部署->即时运行->禁用,然后像魔法一样工作

享受吧!

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

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