【发布时间】:2011-11-12 12:39:25
【问题描述】:
当我尝试在以下条件下安装我的 Android 应用程序时,我收到了 INSTALL_FAILED_DEXOPT 错误(这似乎与此处提出的有关 INSTALL_FAILED_DEXOPT 的其他问题没有任何关系):
- 首先,使用 Eclipse 和 Android 插件将应用安装到新创建的 2.3.3 模拟器。
- 使用上述 Eclipse 在现有的 2.3.3 和 2.2 模拟器上安装较新版本的应用程序。
- 我什至尝试在启动模拟器时单击“擦除用户数据”复选框。
- 在运行 CyanogenMod 7.1 nightly (2.3.5) 的 HTC G2 上安装了较旧版本的应用程序的较新版本。
- 使用“adb -d uninstall com.jackcholt.reveal”从 G2 中删除了以前版本的应用,然后尝试使用“adb -d install Reveal3.apk”在 G2 上安装新版本
我每次尝试都会在 LogCat 中收到以下错误:
D/PackageParser( 75): Scanning package: /data/app/vmdl352595685.tmp
D/PackageManager( 75): Scanning package com.jackcholt.reveal
I/PackageManager( 75): Unpacking native libraries for /data/app/com.jackcholt.reveal-1.apk
D/installd( 35): DexInv: --- BEGIN '/data/app/com.jackcholt.reveal-1.apk' ---
E/dalvikvm( 378): Invalid name: 'menu_item_reindex'
E/dalvikvm( 378): Trouble with item 282 @ offset 0x17dd8
E/dalvikvm( 378): Cross-item verify of section type 0004 failed
E/dalvikvm( 378): ERROR: Byte swap + verify failed
E/dalvikvm( 378): Optimization failed
W/installd( 35): DexInv: --- END '/data/app/com.jackcholt.reveal-1.apk' --- status=0xff00, process failed
E/installd( 35): dexopt failed on '/data/dalvik-cache/data@app@com.jackcholt.reveal-1.apk@classes.dex' res = 65280
W/PackageManager( 75): Package couldn't be installed in /data/app/com.jackcholt.reveal-1.apk
我尝试的第一件事是更改“无效名称”——“menu_item_index”。它位于菜单定义 XML 文件的末尾,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<menu android:id="@+id/shared_menu" xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:icon="@android:drawable/ic_menu_recent_history"
android:title="@string/menu_history"
android:id="@+id/menu_item_history"/>
<item android:icon="@android:drawable/ic_input_get"
android:title="@string/menu_bookmark"
android:id="@+id/menu_item_bookmark"/>
<item android:id="@+id/menu_item_previous"
android:icon="@drawable/previous_chapter"
android:title="@string/menu_previous"/>
<item android:id="@+id/menu_item_next"
android:icon="@drawable/next_chapter"
android:title="@string/menu_next"/>
<item android:icon="@android:drawable/ic_menu_set_as"
android:id="@+id/menu_item_download"
android:title="@string/menu_browser"/>
<item android:icon="@android:drawable/ic_menu_preferences"
android:id="@+id/menu_item_settings"
android:title="@string/menu_settings"/>
<item android:id="@+id/menu_item_note_browser"
android:title="@string/annot_brow"
android:icon="@android:drawable/ic_input_get"/>
<item android:icon="@android:drawable/ic_menu_more"
android:title="@string/more"
android:id="@+id/menu_extra">
<menu>
<item android:id="@+id/menu_item_download"
android:title="@string/menu_browser"/>
<item android:id="@+id/menu_item_note_browser"
android:title="@string/annot_brow"/>
<item android:title="@string/menu_help"
android:id="@+id/menu_item_help"/>
<item android:title="@string/menu_refresh_library"
android:id="@+id/menu_item_refresh_lib"/>
<item android:title="@string/menu_update"
android:id="@+id/menu_item_update"/>
<item android:title="@string/reset"
android:id="@+id/menu_item_reset"/>
<item android:title="@string/donate_menu"
android:id="@+id/menu_item_donate"/>
<item android:title="@string/menu_license"
android:id="@+id/menu_item_license"/>
<item android:id="@+id/menu_item_about"
android:title="@string/menu_about"/>
<item android:id="@+id/menu_item_reindex"
android:title="@string/reindex_books"/>
</menu>
</item>
</menu>
我需要做些什么来避免 INSTALL_FAILED_DEXOPT 错误?
【问题讨论】:
-
这个问题你解决了吗?
标签: android optimization menu installation