Intereting Posts
Андроидная студия BaseGameUtils Как разбирать большой файл JSON в android Исключение «OutOfMemory» только на Samsung Galaxy S3 Почему c.moveToFirst () не пропустит первую строку Действие вызова вызова не работает на Marshmallow Тестирование биллинга на Android-маркерах Android с фиктивными учетными данными кредитной карты Должен ли я включать ограничение внешнего ключа в onOpen или onConfigure NoClassDefFoundError – отклонение повторного инициализации в ранее не пройденном классе Пересмотр 2: Как передать данные из справочной службы / потока в другую деятельность, чем MainActivity, которая создала фоновый сервис Как позвонить с Qt непосредственно из приложения? Android: проблема с таймером onTick Когда вы отключаете основной поток, как я могу как можно быстрее запустить какой-то код для основного потока? Отметка времени до строки Получить представление о предпочтении с настраиваемой компоновкой Ускорьте запуск активности, содержащей mapview, и расширьте MapviewActivity

APK не будет устанавливать: DalvikVM не может его оптимизировать (байтовый обмен и проверка не выполняется)

Я получаю ошибку INSTALL_FAILED_DEXOPT (которая, похоже, не имеет ничего общего с другими вопросами, заданными здесь об INSTALL_FAILED_DEXOPT), когда я пытаюсь установить приложение для Android в следующих условиях:

  1. Сначала приложение устанавливается на недавно созданный эмулятор 2.3.3 с использованием Eclipse и Android-плагина.
  2. Более новая версия приложения установлена ​​поверх предыдущей версии на предварительных эмуляторах 2.3.3 и 2.2 с использованием Eclipse, как указано выше.
  3. Я даже попытался щелкнуть флажок «Очистить пользовательские данные» при запуске эмуляторов.
  4. Более новая версия приложения установлена ​​поверх предыдущей версии на HTC G2, работающей на CyanogenMod 7.1 в ночное время (2.3.5).
  5. Удаленная предыдущая версия приложения из G2 с помощью «adb -d uninstall com.jackcholt.reveal» затем попыталась установить новую версию на G2 с помощью «adb -d install Reveal3.apk»,

Каждый раз, когда я пытался, я получил следующие ошибки в 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_re‌index' 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_re‌index" android:title="@string/reindex_books"/> </menu> </item> </menu> 

Что мне нужно сделать, чтобы избежать ошибки INSTALL_FAILED_DEXOPT?

Не уверен, связано ли это, но может ли это быть вызвано выходным файлом dex, который слишком велик для версии Android, на которой вы работаете?

Т.е. делает ли тот же двоичный файл более высокой версией API для Android? (Если да, то это, вероятно, вызвано слишком многими проблемами методов)

Есть множество других потоков вокруг ошибок dexopt, кажется, что единственным приемлемым ответом для этого является ограничение количества классов, которые вы используете; Вы используете proguard?