ฉันกำลังพัฒนาแอพพลิเคชั่น Android โดยใช้ Android 2.2 ขนาดแอปพลิเคชัน APK ของฉันคือ 22.5 MB และฉันต้องการสร้างงานสร้างใหม่สำหรับแท็บเล็ต Samsung ฉันได้รับข้อผิดพลาดต่อไปนี้:
INSTALL_FAILED_DEXOPT
ฉันจะแก้ไขข้อผิดพลาดประเภทนี้ได้อย่างไร
ฉันกำลังพัฒนาแอพพลิเคชั่น Android โดยใช้ Android 2.2 ขนาดแอปพลิเคชัน APK ของฉันคือ 22.5 MB และฉันต้องการสร้างงานสร้างใหม่สำหรับแท็บเล็ต Samsung ฉันได้รับข้อผิดพลาดต่อไปนี้:
INSTALL_FAILED_DEXOPT
ฉันจะแก้ไขข้อผิดพลาดประเภทนี้ได้อย่างไร
คำตอบ:
การรีสตาร์ทอีมูเลเตอร์จากAndroid SDK and AVD Manager
และการเลือกตัวเลือกWipe User Data
ได้แก้ปัญหานี้ให้ฉันแล้ว
คุณสามารถค้นหาตัวเลือกตามที่ไฮไลต์ในภาพด้านล่าง:
adb kill-server
แล้วadb start-server
ควรแก้ปัญหาของคุณ อาจเป็นแอปที่เก่ากว่าแล้วถอนการติดตั้งก่อน
ดูเหมือนว่าจะเกี่ยวข้องกับพื้นที่ดิสก์สำหรับฉัน ข้อผิดพลาดที่เลียนแบบรองเท้าบู๊ต 5.1 รุ่นใหม่ที่มีข้อผิดพลาด "เหลือพื้นที่ดิสก์น้อย" - และเมื่อดูที่คุณสมบัติตัวจำลองพื้นที่เริ่มต้นที่จัดสรรสำหรับที่เก็บข้อมูลภายในคือ 800MB ซึ่งดูเหมือนว่าจะต่ำ
วิธีแก้ปัญหาคือต้องเพิ่มสิ่งนี้ (ฉันไปที่ 4GB) ตัวจำลองยังคงบู๊ตด้วยคำเตือนพื้นที่ดิสก์เดียวกัน แต่โรงงานรีเซ็ตมัน (การตั้งค่า -> สำรองข้อมูลและกู้คืนภายในตัวจำลอง) แก้ไขได้ทั้งหมดสำหรับฉัน
ค่อนข้างแปลกที่มันไม่ทำงานนอกกรอบด้วยการตั้งค่าเริ่มต้น
แอปเวอร์ชันเก่าของคุณที่คุณติดตั้งนั้นขึ้นอยู่กับไลบรารี / ขวดที่เปลี่ยนแปลง ฉันพบปัญหานี้เมื่ออัปเดตไฟล์ jar อื่น ๆ ที่แอพของฉันอ้างถึง
คุณจะต้องถอนการติดตั้งเวอร์ชันเก่าของคุณจากนั้นคุณจะไม่มีปัญหาอีกต่อไป ...
การตั้งค่า -> แอปพลิเคชัน -> จัดการแอปพลิเคชัน -> [ค้นหาและถอนการติดตั้งแอพของคุณ]
INSTALL_FAILED_DEXOPT ข้อผิดพลาดไม่ควรปะทุ ชอบ
[2011-06-14 01:23:40 - ProtectYourself] Installing ProtectYourself.apk...
[2011-06-14 01:24:26 - ProtectYourself] Installation error: INSTALL_FAILED_DEXOPT
[2011-06-14 01:24:26 - ProtectYourself] Please check logcat output for more details.
[2011-06-14 01:24:26 - ProtectYourself] Launch canceled!
โห่วฮู
หากคุณใช้Android Studioลองล้างโครงการของคุณ:
สร้าง> ทำความสะอาดโครงการ
ดูเหมือนว่าข้อความแสดงข้อผิดพลาดนี้สามารถมีสาเหตุได้หลายอย่าง กรณีที่ฉันเจอคืออุปกรณ์จริง (ดังนั้นโปรแกรมจำลองฐานจึงใช้ไม่ได้)
โดยทั่วไปเมื่อสิ่งนี้เกิดขึ้นให้ตั้งค่าตัวกรอง Logcat ของคุณเป็นVerboseหรือWarnซึ่งจะช่วยให้คุณได้รับข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุ
ในกรณีของฉันมี JUnit หลายเวอร์ชันหรือขัดแย้งกันอยู่ในโครงการที่ฉันกำลังทำงานอยู่ (โค้ดเบสขนาดใหญ่ที่มีอยู่) แอพ Android ที่ฉันพยายามปรับใช้มีหลายโครงการในไลบรารีที่ต้องพึ่งพาและฉันตั้งค่าสิ่งต่าง ๆ โดยไม่ตั้งใจให้รวมไฟล์ JUnit หลายไฟล์
ฉันค้นพบสิ่งนี้ตามชุดข้อความ Logcat โปรดทราบว่าบรรทัด WARN ให้สาเหตุ:
DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite$1;' has an earlier definition; blocking out
11-06 14:30:10.973: WARN/dalvikvm(4808): Invalid file flags in class Ljunit/runner/Sorter$Swapper;: 0209
11-06 14:30:10.973: null/libc(4808): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 4808 (dexopt)
เร่งความเร็วด้วย Android Studio 3.4.1 แต่ใช้ emulator ที่เก่ากว่า (5.0) ขั้นตอนนี้ (บน Mac) แก้ไขปัญหา:
ฉันเปลี่ยนขนาด RAMและความจุในการจัดเก็บข้อมูลของอิมูเลเตอร์ตอนนี้มันทำงานอยู่...ใน eclipse AVD manager
ลองคำตอบของฉันhttps://stackoverflow.com/a/34918549/3737254
ถ้าคุณใช้ android studio 2.0 ให้ปิดการใช้งานทันที
FYI, การเรียกใช้ทันทีเป็นคุณลักษณะใหม่จาก android studio 2.0 (ฉันไม่เคยใช้มัน>. <)
วิธีการปิดการใช้งาน: การตั้งค่า -> สร้างการดำเนินการและการปรับใช้ -> เรียกใช้ทันที -> ปิดการใช้งานจากนั้นทำงานเหมือนเวทมนตร์
สนุก!
ฉันต้องการปิดใช้งานการเรียกใช้ทันทีเพื่อแก้ไขปัญหา เพื่อปิดการใช้งานทันทีเรียกใช้บน OS X ไปที่Android สตูดิโอ > การตั้งค่า > รูปร่าง, การดำเนินการปรับใช้ > ทันที RunEnable Instant Run to hot swap code/resource changes on deploy (default enabled)
แล้วเอาเห็บจาก
dexopt error. Application failed to install
นี้ทำงานสำหรับฉัน ฉันลองสิ่งเหล่านี้ก่อนที่ฉันจะพบสิ่งนี้: adb kill-server
adb start-server
รีสตาร์ท Android Studio และ Factory กำลังรีเซ็ตอุปกรณ์ของฉัน
ทางออกเดียวที่ทำงานได้สำหรับฉันเพื่อแก้ไขปัญหานี้คือการเพิ่ม RAM ของ VM เป็น 4GB
วันนี้ฉันมีปัญหาเดียวกันกับ Android Studio บนอุปกรณ์เสมือนใหม่ ดูเหมือนว่าฉันได้ดาวน์โหลดx86_64
รูปภาพสร้าง VD ขึ้นใหม่ด้วยx86
ภาพที่เทียบเท่าแล้วซ่อมมัน
ฉันคาดว่าจะได้รับINSTALL_FAILED_NO_MATCHING_ABIS
ในกรณีนี้ แต่อย่างใดฉันก็ติดอยู่กับINSTALL_FAILED_DEXOPT
x86
ล้มเหลว หลังจากดาวน์โหลดภาพและเปลี่ยนอีมูเลเตอร์x86_64
เป็นข้อผิดพลาดได้หายไป ฉันใช้อิมเมจระบบ API 21
x86_64
ภาพแทนภาพx86
หนึ่ง ฉันยังใช้ API 21 AVD (Nexus 5)
ฉันทำงานกับ Android Studio และมีข้อผิดพลาดเดียวกัน
การลบโฟลเดอร์บิลด์ของโมดูลหลักช่วย หลังจากลบทุกอย่างกลับสู่ปกติ
INSTALL_FAIL_DEXOPT มักจะเกี่ยวข้องกับขีด จำกัด ที่วางไว้ใน classes.dex ในสิ่งใด pre-ICS dexopt จะล้มเหลวในสิ่งที่เกิน 5 MB Android เวอร์ชันล่าสุดใช้บัฟเฟอร์ 8 หรือ 16 MB
ตรวจสอบขนาดของคลาส.dexใน APK ของคุณ นอกจากนี้ยังเป็นการดีที่จะเห็นว่าวิธีการนับของคุณเป็นอย่างไรเนื่องจาก dex มีข้อ จำกัด 65536 วิธี / เขต
อ้างอิง:
ฉันพบปัญหานี้หลังจากเปิดใช้งานjumboMode flag ใน build ( dex.force.jumbo=true
) ทุกอย่างทำงานได้ดีบนอุปกรณ์ Android รุ่นใหม่ แต่การติดตั้งล้มเหลวบน Gingerbread
ดังนั้นหากแอปของคุณต้องการโหมดจัมโบ้เนื่องจากข้อ จำกัด 65k ที่น่ารำคาญลองตัดโค้ด / สตริงที่ไม่ได้ใช้และตั้งค่าโหมดจัมโบ้กลับเป็นเท็จ
classes.dex
.apk
ไม่ได้ทำให้มันไปสุดท้าย ใช้งานgradlew --offline clean && gradlew --offline assembleDebug
สิ่งที่แก้ไขให้ฉันทุกครั้ง จากจุดนั้นคุณสามารถเริ่มเปิดแอพจาก Android Studio อีกครั้ง
แก้ไข: ก่อนที่ฉันจะพูดถึงข้างต้นไปที่ Task Manager และฆ่าทั้งหมดcmd.exe
และconhost.exe
กระบวนการ (หรือเพียงคนที่aapt
ติดอยู่) มิฉะนั้นจะผิดพลาดจากนี้เมื่อเปิดตัวจากบรรทัดคำสั่งด้วยข้อผิดพลาดที่น่าอับอายaapt
-1073741819
build.gradle
ไฟล์โครงการรูทของคุณ ท่ามกลางการอ้างอิง buildscript classpath 'com.android.tools.build:gradle:1.0.0-rc4'
ควรจะมี
ฉันได้รับข้อผิดพลาดเดียวกันและแก้ไขโดยการเพิ่มขนาดของที่เก็บข้อมูลภายใน
ที่เก็บข้อมูลภายในถูกตั้งค่าเริ่มต้นไว้ที่ 32MB (ฉันรู้) และจากนั้นฉันติดตั้ง apks สองตัวซึ่งมีพื้นที่น้อยกว่าสิ่งที่จำเป็นสำหรับการติดตั้ง
ตรวจสอบพื้นที่เก็บข้อมูลบนอุปกรณ์ของคุณ
ฉันได้ถอนการติดตั้งแอปแล้วและได้รับข้อผิดพลาด INSTALL_FAILED_DEXOPT หากคุณกำลังทำงานกับ Android Studio / gradle: gradle cleanไม่ได้หลอกลวงให้ฉัน
ใน build.gradle เปลี่ยนรวบรวมและสร้างเป็นรุ่นล่าสุด และมันก็ได้ผลกับฉันด้วย
================
android {
compileSdkVersion 22
buildToolsVersion "22"
คำตอบมากมายที่นี่ แต่อาจช่วยคนที่ฉันมีปัญหาด้วยอุปกรณ์จริงและปัญหาก็คือกับ D8
ลองเพิ่มสิ่งนี้ลงใน gradle.properties ของคุณและมันใช้ได้กับฉัน
android.enableD8=false
android.enableD8.desugaring= false
ฉันได้รับปัญหานี้เมื่อพยายามติดตั้งบนอุปกรณ์ 2.3 (ใช้ได้กับ 4.0.3) มันจบลงเนื่องจากโครงการ lib ที่ฉันใช้มีหลายไหสำหรับสิ่งที่มีอยู่แล้วใน Android เช่น HttpClient และ XML parsers เป็นต้นดูที่logcat
ทำให้ฉันพบสิ่งนี้ตามที่บอกฉันว่ามันข้ามชั้นเรียนไปแล้ว นำเสนอ. มีข้อผิดพลาดต้นฉบับที่ไม่ช่วยเหลือดี!
ฉันมีข้อผิดพลาดในการทดสอบบนอุปกรณ์จริง การล้างแคช / การถอนการติดตั้งการรีสตาร์ททุกอย่างใช้งานไม่ได้สำหรับฉันการลบเนื้อหาของโฟลเดอร์ build ทำได้ :) (Android studio)
ไม่มีวิธีแก้ปัญหาทั่วไปคุณต้องค้นหาข้อผิดพลาดที่รายงานใน Logcat ของคุณเพื่อให้สามารถเข้าใจได้ บางครั้งเป็นคลาสที่ไม่สามารถ 'dexed' ได้เนื่องจากมีการใช้งานคลาสที่ไม่สามารถใช้ได้ใน Target API ที่ระบุเช่น หรืออาจเป็นคลาสที่คุณกำลังอ้างอิงในโค้ดของคุณ แต่ไลบรารี่ที่อยู่ในนั้นไม่ได้ถูกบรรจุ
ลองใช้ proguard เพื่อลดขนาด APK ของคุณ ฉันมีปัญหาเดียวกันหากฉันพยายามติดตั้ง APK ขนาดใหญ่ 25MB + APK บนอุปกรณ์ Samsung Galaxy Ace 2.3.6 รุ่นเก่าโดยไม่ลดขนาด / เพิ่มประสิทธิภาพโค้ดด้วยพราน
โหมดจัมโบ้และการรีสตาร์ทอุปกรณ์ไม่ทำงาน
ในกรณีของฉันนี่เป็นข้อผิดพลาดในปลั๊กอิน kotlin เวอร์ชัน 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
ข้อผิดพลาดนี้ปรากฏขึ้นในอุปกรณ์เก่า (API 16)
แก้ไขสิ่งนี้โดยการลบคำอธิบายประกอบ @Parcelize และแทนที่ด้วยตัวสร้างโค้ดนี้: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
targetSdkVersion 22 // 17 ==========================> ตั้งค่าจำนวนนี้น้อยกว่าหรือเท่ากับเวอร์ชั่นของ Android OS บนอุปกรณ์อาจช่วยได้
defaultConfig {
applicationId "software.nhut.personalutilitiesforlife"
minSdkVersion 16
targetSdkVersion 22//17==========================> set this number less then or equal to the version of Android OS on devices might help
versionCode 5
versionName "1.26"
// Enabling multidex support.
multiDexEnabled true
}
ฉันมีปัญหานี้เมื่อมีอักขระ Unicode บางตัวในชื่อวิธีการของฉัน (เนื่องจากทุกสิ่งคัดลอก / วางจากไฟล์ PowerPoint) ที่ Dalvik ไม่ชอบ คุณสามารถเห็นสิ่งนี้ได้โดยดูที่ผลลัพธ์ Logcat ขณะที่พยายามติดตั้ง APK
นี่เป็นอุปกรณ์จริง
แก้ไขได้โดยการแก้ไขเวลาวันที่บนโทรศัพท์ (เป็นบางวันที่เริ่มต้น 01.01.1980) และทำความสะอาดโครงการ
ฉันเปลี่ยนรุ่น android version 4 รองรับ sdk 21 และมีข้อผิดพลาดนี้ ดังนั้นฉันกลับไปที่เวอร์ชันการสนับสนุนสำหรับเวอร์ชันเก่า (ก่อนหน้า 21) และมันใช้งานได้ ข้อผิดพลาดเกิดขึ้นเฉพาะใน Android 2.3
ฉันพบปัญหานี้เมื่อฉันพยายามอัพเดตเครื่องมือบิลด์ใหม่ 24.0.1 การเชื่อมต่ออินเทอร์เน็ตขาดหายไปและเครื่องมือไม่สามารถดาวน์โหลดได้สำเร็จหลังจากนั้นฉันได้รับข้อผิดพลาดนี้และใช้เวลาพยายามแก้ปัญหา แต่เมื่อฉันสร้างเครื่องมือสร้างที่ได้รับการอัปเดตสำเร็จ - แก้ไขปัญหาได้แล้ว โชคดี.