2011-09-07 8 views
7

Tôi gặp lỗi INSTALL_FAILED_DEXOPT (dường như không liên quan gì đến các câu hỏi khác đã được hỏi tại đây về INSTALL_FAILED_DEXOPT) khi tôi cố gắng cài đặt ứng dụng Android của mình theo các điều kiện sau:APK sẽ không cài đặt: DalvikVM không thể tối ưu hóa nó (Hoán đổi byte và xác minh không thành công)

  1. Đầu tiên, ứng dụng được cài đặt cho trình giả lập 2.3.3 mới được tạo bằng Eclipse và plugin Android.
  2. Phiên bản mới hơn của ứng dụng được cài đặt trên phiên bản trước đó trên các trình mô phỏng 2.3.3 và 2.2 đã có trước đó bằng Eclipse như trên.
  3. Tôi thậm chí đã thử nhấp vào hộp kiểm "Xóa dữ liệu người dùng" khi bắt đầu trình giả lập.
  4. Phiên bản mới hơn của ứng dụng được cài đặt trên phiên bản trước đó trên HTC G2 chạy CyanogenMod 7.1 đêm (2.3.5).
  5. Removed phiên bản trước của ứng dụng từ G2 sử dụng "adb -d uninstall com.jackcholt.reveal" sau đó đã cố gắng để cài đặt phiên bản mới trên G2 sử dụng "adb -d cài đặt Reveal3.apk"

Mỗi lần Tôi đã thử tôi đã nhận được các lỗi sau trong 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 

Và điều đầu tiên tôi đã thử thay đổi "Tên không hợp lệ" - 'menu_item_index'. Nó được tìm thấy ở cuối tệp XML định nghĩa trình đơn với nội dung sau:

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

Tôi cần phải làm gì để tránh lỗi INSTALL_FAILED_DEXOPT?

+0

Bạn đã giải quyết được sự cố này chưa? –

Trả lời

0

Không chắc chắn nếu điều này có liên quan nhưng điều này có thể được gây ra bởi tệp đầu ra dex quá lớn cho phiên bản Android bạn đang chạy không?

tức là, cùng một tệp nhị phân có hoạt động trên phiên bản API cao hơn của Android không? (nếu có, thì có thể do quá nhiều vấn đề gây ra)

có vô số chủ đề khác xung quanh thất bại dexopt, có vẻ như câu trả lời duy nhất được chấp nhận là giới hạn số lớp bạn đang sử dụng; bạn đang sử dụng proguard?