安装失败 [INSTALL_FAILED_DEXOPT]

16

我将我的应用程序上传到虚拟设备时遇到了问题,如何解决? 虚拟设备:Nexus S,CPU:Intel Atom x86。我使用的是Android Studio。

Waiting for device.
Target device: emulator-5554
Uploading file
    local path: D:\git\Genius\app\build\apk\app-debug-unaligned.apk
    remote path: /data/local/tmp/com.vlad.genius.app
Installing com.vlad.genius.app
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.vlad.genius.app"
pkg: /data/local/tmp/com.vlad.genius.app
Failure [INSTALL_FAILED_DEXOPT]

我正在运行一个带有擦除用户数据的虚拟设备,但是它并没有帮助我。

在Logcat中,我看到了这一行:

05-04 16:44:49.940    1775-1775/? W/dalvikvm﹕ DexOptZ: zip archive '/data/app/com.vlad.genius.app-1.apk' does not include classes.dex
05-04 16:44:49.940      956-956/? W/installd﹕ DexInv: --- END '/data/app/com.vlad.genius.app-1.apk' --- status=0xff00, process failed
05-04 16:44:49.940      956-956/? E/installd﹕ dexopt failed on '/data/dalvik-cache/data@app@com.vlad.genius.app-1.apk@classes.dex' res = 65280

https://dev59.com/IW435IYBdhLWcg3w4Uas - Boris Mocialov
1
@mocialov-boris 这并没有帮助到我。 - Vlad
它帮助了我。https://dev59.com/6nzaa4cB1Zd3GeqPPFwa - Volodymyr
首先,您可能不应该尝试在设备上部署未对齐的apk文件。但是,根据错误消息,您应该像打开zip文件一样打开.apk文件,并查看它是否实际包含classes.dex - 如果没有,它将无法工作,您需要找出构建过程中出了什么问题。 - Chris Stratton
2
@ahmed_khan_89 我制作一个新应用程序并复制所有逻辑。 - Vlad
显示剩余2条评论
1个回答

4
这个问题最常见的原因是Android上的dex限制。有两种限制,第一种是您可以拥有的方法数量,第二个与缓存大小有关(直接相关)。
Google在此处记录了此问题:http://code.google.com/p/android/issues/detail?id=22586 因此,首先需要了解您正在尝试安装的Android版本。然后使用dexdump工具(在Android SDK中的构建工具中),并找出您拥有的方法数量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接