2011-09-07 10 views
7

Recibo un error INSTALL_FAILED_DEXOPT (que no parece tener nada que ver con las otras preguntas que se han realizado aquí sobre INSTALL_FAILED_DEXOPT) cuando intento instalar mi aplicación de Android bajo las siguientes condiciones:APK no se instalará: DalvikVM no puede optimizarlo (el intercambio de bytes y la verificación falla)

  1. Primero, la aplicación se instala en un emulador de 2.3.3 recién creado usando Eclipse y el complemento de Android.
  2. Se instaló una versión más nueva de la aplicación que la versión anterior en los emuladores preexistentes 2.3.3 y 2.2 utilizando Eclipse como se indica anteriormente.
  3. Incluso he intentado hacer clic en la casilla de verificación "Eliminar datos de usuario" al iniciar los emuladores.
  4. Una versión más nueva de la aplicación está instalada en versiones anteriores en HTC G2 ejecutando CyanogenMod 7.1 todas las noches (2.3.5).
  5. Eliminado versión anterior de la aplicación de G2 usando "adb -d desinstalación com.jackcholt.reveal" luego trató de instalar la nueva versión en G2 usando "adb install -d Reveal3.apk"

Cada vez he intentado que he recibido los siguientes errores en 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/[email protected]@[email protected]' res = 65280 
W/PackageManager( 75): Package couldn't be installed in /data/app/com.jackcholt.reveal-1.apk 

Y lo primero que probé fue el cambio de "Nombre no válido" - 'menu_item_index'. Se encuentra hacia el final de un archivo XML menú de definición con el siguiente contenido:

<?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> 

¿Qué necesito hacer para evitar el error INSTALL_FAILED_DEXOPT?

+0

¿Resolvió este problema? –

Respuesta

0

No estoy seguro si esto está relacionado, pero ¿podría ser causado por un archivo de salida dex que es demasiado grande para la versión de Android en la que se está ejecutando?

es decir, ¿funciona el mismo binario en una versión API más alta de android? (En caso afirmativo, entonces es probable que haya sido causado por muchos métodos problema)

Hay muchos otros hilos en las fallas de dexopt, parece que la única respuesta aceptada para esto es limitar el número de clases que está utilizando; ¿Estás usando proguard?

Cuestiones relacionadas