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

INSTALL_FAILED_DEXOPT

如何解决这种错误?


当前回答

在使用Android Studio 3.4.1时遇到了这种情况,但使用的是较旧的模拟器(5.0)。这个过程(在Mac上)修复了这个问题:

停止模拟器 cd ~ /。安卓/ avd / .avd模拟器的名字 rm * .lock 擦模拟器 启动模拟器

其他回答

Classes.dex不会进入最终的。apk。运行gradlew—脱机清洁&& gradlew—脱机组装调试每次都为我解决问题。从那时起,你可以再次从Android Studio启动应用程序。

编辑:在我上面所说的之前,进入任务管理器并杀死所有cmd.exe和conhost.exe进程(或者只是一个aapt卡住的进程)。否则,aapt从现在开始从命令行启动时会崩溃,并出现臭名昭著的错误-1073741819。

我已经卸载了应用程序,并得到INSTALL_FAILED_DEXOPT错误。 如果你正在使用Android Studio / gradle: gradle clean, 欢呼。

一个原因是classes.dex在.apk-package的根目录中找不到。 要么

该文件在apk-package或 它位于.apk文件中的子文件夹中。

这两种情况都会导致终止,因为Android只搜索apk文件的根目录。造成这种混乱的原因是.apk文件的构建运行没有错误消息。

造成这种错误的核心原因可能是:

dx工具需要在当前的主工作文件夹中找到classes.dex。但实际上,classes.dex位于其他位置。 Aapt在classes.dex的位置有错误信息。例如,在aapt.exe中添加…bin / classes.dex。这是错误的,因为classes.dex在创建的.apk文件的子文件夹/bin中。

也许这个会有帮助:

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

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

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

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