无法将Android应用上传到设备(过时的dexed jar)

Gui*_*rme 62 android android-studio

我正在使用Android Studio开发这个应用程序,今天当我尝试将其上传到我的设备进行测试时,我有一个弹出窗口说:

安装失败,因为设备可能具有与当前版本不匹配的陈旧dexed jar(dexopt错误).要继续,您必须卸载现有的应用程序.

警告:卸载将删除应用程序数据!

要卸载现有应用程序吗?

它提供了两个选项,OK或Cancel.点击"确定"后,"运行"选项卡中显示以下消息:

DEVICE SHELL COMMAND: pm uninstall my.bundle.id
Unknown failure

该应用程序似乎已卸载,在"管理应用程序"下没有任何痕迹.
我无法上传该应用.我尝试清理项目并重建,但它没有用.

我能做什么?

Ale*_*ele 56

我也在Android Studio中遇到过这个问题,从版本2.0预览版6一直到2.0 Beta 3,这里提到的解决方案都没有为我工作.

打开它与Instant Run无关.我所要做的就是增加AVD的内部存储,直到下面的通知消失.我还必须在更改值后执行数据擦除.

在此输入图像描述

  • 谢谢.在我的情况下,Instant Run已被禁用.我将AVD的内部存储从800增加到1600 Mb,擦除了数据并安装了apk. (4认同)

小智 28

我为这个项目禁用了Instant run,问题解决了.

也许这是Android studio 2.0预览版即时运行功能中的一个错误.

Instant Run是Android Studio 2.0中引入的新功能.

ps:如果你没有找到Instant run,它在:

Android Studio --> Preferences --> Build, execution, deploy --> Instant run.
Run Code Online (Sandbox Code Playgroud)

或者您可以在首选项选项卡中搜索它.


小智 22

转到AVD Manager,然后在设备的操作部分选择擦除数据.这对我有用,希望它有帮助....


Gui*_*rme 8

我发现dex文件比缓冲区大,即使它包含的方法少于64k.然后我启用了ProGuard,它帮助大大减少了dex文件的大小.

应用程序dex-method-counts有助于调试你的dex文件,不仅检查方法的数量,还检查它们属于哪个包

  • 您好,我遇到了与此问题完全相同的问题,但是这个被接受的答案并没有给我一个我能理解的解决方案.你有可能以某种方式打开这个答案,就像有可能在不使用第三方应用程序的情况下以某种方式解决这个问题,并且ProGuard提示在生产版本中似乎是可行的,但是什么将有助于我允许我调试我的应用程序吗?简而言之,如何解决我刚刚开始制作的应用程序中出现的这个问题,并且远离生产? (2认同)

gho*_*olk 6

我发现我的问题是由旧的SDK Build Tools版本引起的,这导致了Clean失败.我将我的SDK Build Tools升级到最新版本,然后清理工作,我不再收到陈旧的dexed jar错误.希望这将有助于其他人努力解决这个问题.

  • 这对我有用。如果遇到此错误,只需运行SDK管理器并安装构建工具。重新启动android studio而不重新安装它们时,它实际上提示我这样做,因此只需重新启动AS并按照提示进行操作即可。 (2认同)

Mur*_*rat 5

这对模拟器有帮助:关闭模拟器。工具> AVD管理器>选择仿真器设置>擦除数据>冷启动。。现在安装应用程序。

参考