Tôi đang phát triển ứng dụng Android bằng Android 2.2, kích thước APK của ứng dụng là 22,5 MB và tôi muốn tạo bản dựng mới cho máy tính bảng Samsung. Tôi đã nhận được lỗi sau:
INSTALL_FAILED_DEXOPT
Làm thế nào để tôi giải quyết loại lỗi này?
Tôi đang phát triển ứng dụng Android bằng Android 2.2, kích thước APK của ứng dụng là 22,5 MB và tôi muốn tạo bản dựng mới cho máy tính bảng Samsung. Tôi đã nhận được lỗi sau:
INSTALL_FAILED_DEXOPT
Làm thế nào để tôi giải quyết loại lỗi này?
Câu trả lời:
Khởi động lại trình giả lập từ Android SDK and AVD Manager
và chọn tùy chọn Wipe User Data
đã giải quyết vấn đề này cho tôi.
Bạn có thể tìm thấy tùy chọn như được tô sáng trong hình ảnh đã cho bên dưới:
adb kill-server
rồi adb start-server
nên giải quyết vấn đề của bạn. Có thể ứng dụng cũ hơn tồn tại sau đó gỡ cài đặt nó trước.
Điều này dường như có liên quan đến không gian đĩa cho tôi. Trình giả lập 5.1 mới được khởi động có lỗi "không gian đĩa thấp" - và nhìn vào các thuộc tính của trình giả lập, không gian mặc định được phân bổ cho bộ nhớ trong là 800 MB có vẻ thấp.
Giải pháp, do đó là tăng điều này (tôi đã lên 4GB). Điều kỳ lạ là trình giả lập vẫn khởi động với cùng một cảnh báo không gian đĩa nhưng nhà máy đã thiết lập lại nó (Cài đặt -> Sao lưu và Khôi phục bên trong trình giả lập) đã giải quyết hoàn toàn cho tôi.
Chỉ hơi lạ một chút là nó không hoạt động với cài đặt mặc định.
Phiên bản cũ của ứng dụng bạn đang cài đặt có các thư viện / lọ phụ thuộc đã được thay đổi. Tôi gặp vấn đề này khi cập nhật các tệp jar khác mà ứng dụng của tôi đang điều chỉnh.
Bạn sẽ cần Gỡ cài đặt phiên bản cũ của mình và sau đó bạn sẽ không gặp vấn đề gì nữa ...
Cài đặt -> Ứng dụng -> Quản lý ứng dụng -> [Tìm và gỡ cài đặt ứng dụng của bạn]
Lỗi INSTALL_FAILED_DEXOPT không nên nổ ra. Giống
[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!
Ôi trời ơi.
Nếu bạn đang sử dụng Android Studio , hãy thử làm sạch dự án của bạn:
Xây dựng> Dự án sạch
Có vẻ như thông báo lỗi này có thể có nhiều nguyên nhân khác nhau. Trường hợp tôi gặp là trên một thiết bị thực (vì vậy các giải pháp cơ sở giả lập không được áp dụng).
Về cơ bản, khi điều này xảy ra, hãy đặt bộ lọc Logcat của bạn thành Verbose hoặc Warn , điều này sẽ giúp bạn có thêm thông tin về nguyên nhân.
Trong trường hợp của tôi, nhiều phiên bản hoặc xung đột của JUnit đã được đưa vào dự án mà tôi đang thực hiện (một cơ sở mã lớn hiện có). Ứng dụng Android mà tôi đang cố gắng triển khai có một số dự án thư viện là phụ thuộc và tôi đã cài đặt nhầm mọi thứ để bao gồm nhiều tệp jar JUnit.
Tôi phát hiện ra điều này dựa trên một loạt các tin nhắn Logcat. Lưu ý rằng dòng WARN đưa ra nguyên nhân:
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)
Chạy vào điều này với Android Studio 3.4.1 nhưng sử dụng trình giả lập (5.0) cũ hơn. Quy trình này (trên Mac) đã khắc phục sự cố:
Tôi đã thay đổi kích thước RAM và dung lượng lưu trữ nội bộ của trình giả lập Bây giờ CNTT đang hoạt động ... trong trình quản lý AVD nhật thực
hãy thử câu trả lời của tôi https://stackoverflow.com/a/34918549/3737254
nếu bạn sử dụng android studio 2.0, hãy BẮT ĐẦU chạy ngay lập tức.
FYI, chạy ngay lập tức là tính năng mới từ android studio 2.0 (tôi chưa bao giờ sử dụng nó>. <)
Cách tắt: tùy chọn -> xây dựng, thực thi và triển khai -> chạy ngay lập tức -> tắt, sau đó hoạt động như ma thuật
Thưởng thức!
Tôi cần phải tắt Instant Run để khắc phục sự cố. Để tắt Instant Run trên OS X, hãy truy cập Android Studio > Preferences > Build, Ex thi, Deployment > Instant Run sau đó xóa tick khỏi Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.
dexopt error. Application failed to install
. Tôi đã thử những thứ này trước khi tôi tìm thấy cái này: adb kill-server
adb start-server
khởi động lại Android Studio và Factory đặt lại thiết bị của tôi.
Hôm nay tôi gặp vấn đề tương tự với Android Studio trên một thiết bị ảo mới. Có vẻ như tôi đã tải xuống x86_64
hình ảnh, tạo lại VD với x86
hình ảnh tương đương đã sửa nó.
Tôi dự kiến sẽ có được một INSTALL_FAILED_NO_MATCHING_ABIS
trong trường hợp này nhưng bằng cách nào đó tôi đã bị mắc kẹt vớiINSTALL_FAILED_DEXOPT
x86
thất bại. Sau khi tải xuống hình ảnh và thay đổi trình giả lập thành x86_64
lỗi đã biến mất. Tôi đã sử dụng hình ảnh hệ thống API 21.
x86_64
hình ảnh thay vì hình ảnh x86
. Tôi cũng đang sử dụng API 21 AVD (Nexus 5).
Tôi đang làm việc với Android Studio và gặp lỗi tương tự.
Xóa thư mục xây dựng của Modul chính đã giúp. Sau khi xóa mọi thứ trở lại bình thường.
INSTALL_FAIL_DEXOPT thường phải thực hiện với giới hạn được đặt trên class.dex. Trên bất cứ thứ gì dexopt tiền ICS sẽ thất bại trên bất cứ thứ gì trên 5 MB. Các phiên bản gần đây của Android sử dụng bộ đệm 8 hoặc 16 MB.
Kiểm tra kích thước của class.dex trong APK của bạn. Cũng rất tốt để xem số lượng phương thức của bạn là gì, vì dex có giới hạn phương thức / trường 65536.
Người giới thiệu:
Tôi gặp vấn đề này sau khi bật cờ jumboMode trong build ( dex.force.jumbo=true
). Mọi thứ đều hoạt động tốt trên các thiết bị Android mới hơn, nhưng cài đặt không thành công trên Gingerbread.
Vì vậy, nếu ứng dụng của bạn yêu cầu chế độ jumbo do hạn chế 65k gây phiền nhiễu, hãy thử cắt một số mã / chuỗi không sử dụng và đặt chế độ jumbo trở lại sai.
classes.dex
không làm cho nó đến trận chung kết .apk
. Chạy gradlew --offline clean && gradlew --offline assembleDebug
mọi thứ cố định cho tôi mọi lúc. Từ thời điểm đó, bạn có thể bắt đầu khởi chạy lại ứng dụng từ Android Studio.
EDIT: Trước những gì tôi đã nói ở trên, hãy vào Trình quản lý tác vụ và tiêu diệt tất cả cmd.exe
và conhost.exe
các quy trình (hoặc chỉ một trong đó aapt
bị kẹt). Nếu không aapt
sẽ sụp đổ từ bây giờ khi khởi chạy từ dòng lệnh với lỗi khét tiếng -1073741819
.
build.gradle
tập tin dự án gốc của bạn . Trong số các phụ thuộc bản dựng nên cóclasspath 'com.android.tools.build:gradle:1.0.0-rc4'
.
xác minh dung lượng lưu trữ trên thiết bị của bạn
Tôi đã gỡ cài đặt ứng dụng và vẫn gặp lỗi INSTALL_FAILED_DEXOPT. Nếu bạn đang làm việc với Android Studio / gradle: gradle clean đã giúp tôi, Cheers.
Tôi đã gặp vấn đề này khi cố gắng cài đặt trên 2.3 thiết bị (tốt trên 4.0.3). Cuối cùng, đó là do một dự án lib mà tôi đang sử dụng có nhiều lọ dành cho công cụ đã có trong Android, ví dụ như trình phân tích cú pháp XML và XML, v.v. Nhìn vào logcat
tôi đã thấy điều này khi nó nói với tôi rằng nó đã bỏ qua các lớp do chúng đã bị bỏ qua hiện tại. Đẹp không có ích ban đầu có lỗi!
Tôi đã kiểm tra lỗi này trên một thiết bị thực. Xóa bộ nhớ cache / gỡ cài đặt, khởi động lại mọi thứ không hiệu quả với tôi, xóa nội dung của thư mục bản dựng đã làm :) (Android studio)
Không có giải pháp chung chung, bạn phải tìm lỗi được báo cáo trên Logcat của mình để có thể tìm ra lỗi đó. Đôi khi, đó là một lớp không thể bị 'lừa' do việc sử dụng một lớp không có sẵn trên API mục tiêu được chỉ định chẳng hạn. Hoặc nó có thể là một lớp mà bạn đang tham chiếu trong mã của mình, nhưng thư viện chứa nó không được đóng gói.
Trong trường hợp của tôi, đây là một lỗi trong plugin kotlin, phiên bản 1.1.51
https://youtrack.jetbrains.com/su/KT-20034
Lỗi này xuất hiện trên các thiết bị cũ (API 16).
Đã sửa lỗi này bằng cách xóa chú thích @Parcelize và thay thế chúng bằng trình tạo mã này: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
targetSdkVersion 22 // 17 ==========================> đặt số này ít hơn hoặc bằng với phiên bản HĐH Android trên thiết bị có thể giúp ích
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
}
Tôi đã thay đổi phiên bản Android 4 hỗ trợ cho sdk 21 và gặp lỗi này. Vì vậy, tôi đã quay lại phiên bản hỗ trợ cho phiên bản cũ (trước 21) và nó đã hoạt động. Lỗi chỉ xảy ra trong Android 2.3
Tôi đã gặp phải vấn đề này khi tôi đang cố cập nhật các công cụ xây dựng mới 24.0.1. Kết nối Internet bị mất và các công cụ không được tải xuống thành công, sau đó tôi đã gặp lỗi này và mất rất nhiều thời gian để cố gắng giải quyết nó. Nhưng khi tôi thành công cập nhật các công cụ xây dựng - vấn đề đã được giải quyết. Chúc may mắn.