如何解决INSTALL_FAILED_DEXOPT这个错误?

我正在开发android应用程序使用android 2.2,我的应用程序的apk大小是22.5 mb,现在我想为三星tablet.I得到这个错误

INSTALL_FAILED_DEXOPT

如何解决这种错误。

Android SDK and AVD Manager重新启动模拟器,并select“ Wipe User Data ”选项已经解决了我的这个问题。

您可以在下面给出的图像中突出显示该选项:

启动android模拟器时擦除用户数据选项

您正在安装的应用程序的旧版本具有已更改的相关库/jar子。 在更新我的应用程序正在进行的其他jar文件时,我遇到了这个问题。

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

设置 – >应用程序 – >pipe理应用程序 – > [查找和卸载您的应用程序]

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! 

呃胡。

如果您正在使用Android Studio ,请尝试清理您的项目:

build立>清洁项目

看起来这个错误信息可能有许多不同的原因。 我遇到的情况是在一个真正的设备(所以模拟器的基础解决scheme不适用)。

基本上,如果发生这种情况,请将Logcat筛选器设置为“ 详细”或“ 警告” ,这将有助于获取有关原因的更多信息。

就我而言,在我正在进行的项目(一个大的现有代码库)中包含了多个或冲突的JUnit版本。 我试图部署的Android应用程序有几个库项目作为依赖关系,我错误地设置了包含多个JUnit jar文件的东西。

我发现这是基于一系列Logcat消息。 请注意,WARN行给出了原因:

 DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite$1;' has an earlier definition; blocking out 11-06 14:30:10.973: WARN/dalvikvm(4808): Invalid file flags in class Ljunit/runner/Sorter$Swapper;: 0209 11-06 14:30:10.973: null/libc(4808): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 4808 (dexopt) 

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

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

仅供参考,即时运行是来自android studio 2.0的新function(我从来没有使用>。)

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

请享用!

我需要禁用即时运行来解决这个问题。 要在OS X上禁用即时运行,请转至Android Studio > 首选项 > 生成,执行,部署 > 即时运行,然后从“ Enable Instant Run to hot swap code/resource changes on deploy (default enabled)删除勾号Enable Instant Run to hot swap code/resource changes on deploy (default enabled)

我正在使用Android Studio,并有相同的错误。

删除主Modul的生成文件夹帮助。 删除一切后恢复正常。

在构build中启用jumboMode标志( dex.force.jumbo=true )后,我遇到了这个问题。 在新的Android设备上一切正常,但姜饼安装失败。

因此,如果您的应用程序由于恼人的65k限制而需要巨型模式,请尝试剪切一些未使用的代码/string,并将巨型模式设置为false。

classes.dex不会使它到最后的.apk 。 运行gradlew --offline clean && gradlew --offline assembleDebug每次都为我修改了一些东西。 从这一点开始,您可以再次从Android Studio启动应用程序。

编辑:之前我说上面去任务pipe理器,并杀死所有cmd.execonhost.exe进程(或只是一个在哪个卡住)。 否则, aapt启动时, aapt会从现在开始崩溃,并且声名-1073741819错误-1073741819

我改变了模拟器的RAM大小和内部存储容量。 现在IT工作…在Eclipse的AVDpipe理器

INSTALL_FAIL_DEXOPT通常与对classes.dex的限制有关。 在任何情况下,任何超过5MB的ICS dexopt都将失败。 Android的最新版本使用8或16 MB的缓冲区。

检查APK中classes.dex的大小。 看看你的方法数量是多less,因为dex有65536个方法/域限制。


参考文献:

安装应用程序时出错(INSTALL_FAILED_DEXOPT)

https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920

如何缩小代码 – 65k的方法限制在dex

我卸载了该应用程序,但仍然收到INSTALL_FAILED_DEXOPT错误。 如果你正在使用Android Studio / gradle: gradle clean对我来说是个诀窍,干杯。

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

内部存储设备最初设置为32MB(我知道),然后我安装了几个apks,这比安装所需的空间less。

在build.gradle更改编译并构build到最新版本。 它为我工作。

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

 android { compileSdkVersion 22 buildToolsVersion "22" 

试图在2.3设备上安装时遇到此问题(在4.0.3上正常)。 它最终是由于我使用的一个lib项目有多个jar子已经在Android的东西,例如HttpClient和XMLparsing器等。看着logcat导致我find这个,因为它告诉我,它正在跳过类,因为他们已经在场。 好的无益的原始错误那里!

我有一个真正的设备上的错误testing。 清理caching/卸载,重新启动一切都不适合我,删除生成文件夹的内容做:)(Android工作室)

有没有通用的解决scheme,你必须find你的Logcat上报告的错误,以便能够弄清楚。 有时,由于使用指定的目标API上不可用的类,因此无法“排除”类。 或者它可能是一个你在代码中引用的类,但是它所在的库没有被打包。

考虑使用proguard来缩小你的APK。 我有同样的问题,如果我尝试在旧的三星Galaxy Ace 2.3.6设备上安装一个大的25MB + APK没有与proguard缩小/优化代码。

超大模式并重新启动设备不起作用。

当我的方法名称中有一些Unicode字符(由于所有的事情,从一个Powerpoint文件复制/粘贴)Dalvik不喜欢,我有这个问题。 您可以通过在尝试安装APK时查看Logcat输出来看到这一点。

这是一个真正的设备。

通过在电话上更正date时间(这是一些默认date01.01.1980)解决,并清理项目。

我改变了我的版本的Android版本4支持sdk 21,并有这个错误。 所以我回到了旧版本的支持版本(21之前),它的工作。 该错误只发生在android 2.3

当我试图更新新的构build工具24.0.1时遇到了这个问题。 互联网连接丢失,工具没有成功下载,之后,我得到了这个错误,并花了很多时间试图解决它。 但是,当我成功地更新构build工具 – 问题解决了。 祝你好运。

确保你已经安装了所有的SDK,Gradle的目标是正确的版本。

我遇到了同样的问题,但是这是由于我将设备更新到Android 5.0,然后忘记更改我的所有版本以达到目标。

我尝试在这个线程和所有类似的线程说,但问题仍然存在的所有方法! 我的源代码中有15个Java接口; 消除他们解决我的问题

我遇到了这个问题,因为我使用的库有一些不匹配

通过更新android sdk解决最新。 检查SDKpipe理器,如果它显示更新,然后完全更新,清理您的项目,然后运行,它将工作:)

通过删除主应用程序的生成文件夹,该错误得到解决。它会再次重新创build。

由于这似乎是一个问题,我自己遇到了很多次,这次共享解决scheme没有帮助我,我仍然会发布什么帮助我个人和我相信可能会帮助别人在未来:

转到你的项目目录,findbuild / intermediates / dex-cache / cache文件。 删除它 – 顾名思义,它是一个caching的dex文件,如果您已经对项目的依赖关系进行了更改,则可能会过时。

如果您有错误INSTALL_FAIL_DEXOPT,请参阅manifest android:targetSdkVersion。 设置版本<21样本:

机器人:targetSdkVersion = “19”

这对我有效。

在android studio中点击File – > Invalidate caches / restart。 当我得到这个错误,当我在设备而不是模拟器上出现这个错误时,这对我来说是骗人的。

对于我来说,在一些使用Android 5.x的三星设备上导致了INSTALL_FAILED_DEXOPT。

也就是说,我不得不把这个添加到proguard – 不知道为什么它有帮助。

 -keepattributes LocalVariableTable