Tôi đã thử cài đặt ứng dụng của mình vào Android L Preview Intel Atom Virtual Device, nó đã bị lỗi:
INSTALL_FAILED_NO_MATCHING_ABIS
Nó có nghĩa là gì?
Tôi đã thử cài đặt ứng dụng của mình vào Android L Preview Intel Atom Virtual Device, nó đã bị lỗi:
INSTALL_FAILED_NO_MATCHING_ABIS
Nó có nghĩa là gì?
Câu trả lời:
INSTALL_FAILED_NO_MATCHING_ABIS
là khi bạn đang cố gắng cài đặt một ứng dụng có thư viện riêng và nó không có thư viện riêng cho kiến trúc cpu của bạn. Ví dụ: nếu bạn đã biên dịch một ứng dụng cho armv7 và đang cố cài đặt nó trên một trình giả lập sử dụng kiến trúc Intel thay vì nó sẽ không hoạt động.
INSTALL_FAILED_NO_MATCHING_ABIS là khi bạn đang cố gắng cài đặt một ứng dụng có thư viện riêng và nó không có thư viện riêng cho kiến trúc cpu của bạn. Ví dụ: nếu bạn đã biên dịch một ứng dụng cho armv7 và đang cố cài đặt nó trên một trình giả lập sử dụng kiến trúc Intel thay vì nó sẽ không hoạt động.
Sử dụng Xamarin trên Visual Studio 2015. Khắc phục sự cố này bằng cách:
Trong phần "Kiến trúc được hỗ trợ", hãy kiểm tra như sau:
tiết kiệm
Chỉnh sửa: Giải pháp này đã được báo cáo là hoạt động trên Visual Studio 2017 .
Chỉnh sửa 2: Giải pháp này đã được báo cáo là hoạt động trên Visual Studio 2017 cho Mac .
Tôi đang đăng một câu trả lời từ một chủ đề khác bởi vì đó là điều làm việc tốt cho tôi, mẹo là thêm hỗ trợ cho cả hai kiến trúc:
Đăng bài này vì tôi không thể tìm thấy câu trả lời trực tiếp và phải xem một vài bài đăng khác nhau để đạt được điều tôi muốn ...
Tôi đã có thể sử dụng trình giả lập x86 Gia tốc (HAXM) bằng cách thêm phần này vào tập lệnh build.gradle của Mô-đun bên trong khối android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Chạy (xây dựng) ... Bây giờ sẽ có một (yourapp) -x86-debug.apk trong thư mục đầu ra của bạn. Tôi chắc chắn có một cách để tự động cài đặt khi chạy nhưng tôi chỉ bắt đầu trình giả lập HAXM ưa thích của mình và sử dụng dòng lệnh:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
tệp trong đầu ra dự án của tôi.
Nếu bạn sử dụng Genymotion, bạn cần Cài đặt Bản dịch ARM và GApps
Đây thực sự là một lỗi lạ có thể do multidexing ứng dụng của bạn gây ra. Để giải quyết vấn đề này, hãy sử dụng khối sau trong tệp build.gradle của ứng dụng của bạn :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Tôi biết có rất nhiều câu trả lời ở đây, nhưng phiên bản TL; DR là thế này (Nếu bạn đang sử dụng Xamarin Studio):
Options
Android Build
Advanced
tabx86
/ armeabi-v7a
/ armeabi
)Trên Android 8:
apache.commons.io:2.4
nó cung cấp cho INSTALL_FAILED_NO_MATCHING_ABIS, cố gắng thay đổi nó thành 2.5 hoặc 2.6 và nó sẽ hoạt động hoặc nhận xét nó.
Nhận xét của @ ext8enmentnow phải là một câu trả lời để khắc phục sự cố bằng cách sử dụng genymotion:
Nếu bạn gặp vấn đề này trên Genymotion ngay cả khi sử dụng trình dịch ARM, đó là do bạn đang tạo một thiết bị ảo x86 như Google Nexus 10. Thay vào đó, hãy chọn một thiết bị ảo ARM, như một trong các Máy tính bảng tùy chỉnh.
điều này làm việc cho tôi ... Android> Gradle ScScript> build.gradle (Module: ứng dụng) thêm vào bên trong android *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
tôi gặp vấn đề này khi sử dụng thư viện bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7) được thêm vào build.gradle (trong ứng dụng mô-đun) một tùy chọn đóng gói trong phạm vi Android. Nó đã giúp đỡ tôi.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Đối với genymotion trên mac, tôi đã gặp lỗi INSTALL_FAILED_NO_MATCHING_ABIS trong khi cài đặt apk của mình.
Trong dự án của tôi không có "APP_ABI" nào nhưng tôi đã thêm nó vào và nó chỉ xây dựng một apk cho cả hai kiến trúc nhưng nó đã hoạt động. https://stackoverflow.com/a/35565901/3241111
Trong phiên bản cộng đồng phòng thu trực quan 2017, đôi khi việc lựa chọn ABI được hỗ trợ từ Tùy chọn Android sẽ không hoạt động.
Trong trường hợp đó, vui lòng xác minh rằng .csproj có dòng sau và không có dòng trùng lặp nào trong cùng cấu hình bản dựng.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Để chỉnh sửa,
Về cơ bản nếu bạn đã thử Mọi thứ ở trên mà vẫn gặp lỗi tương tự "Vì tôi cũng gặp phải vấn đề này" thì hãy kiểm tra .jar hoặc .aar hoặc mô-đun bạn đã thêm có thể là một thư viện sử dụng ndk và một thư viện không hỗ trợ 8.0 (Oreo) +, tương tự, tôi đang sử dụng Thư viện ổ cắm Microsoft SignalR thêm các tệp .jar của mình và sau đó tôi phát hiện ra ứng dụng không cài đặt trong Oreo sau đó tôi xóa thư viện đó vì hiện tại không có giải pháp nào trên trang git của nó và tôi đi tìm một cái khác .
Vì vậy, vui lòng kiểm tra thư viện bạn đang sử dụng và tìm kiếm về nó nếu bạn háo hức cần đến thư viện đó.
Tôi gặp phải vấn đề này khi chuyển từ Android 7 (Nougat) sang Android 8 (Oreo).
Tôi đã thử một vài cách được liệt kê ở trên và để vận xui của tôi không có gì hiệu quả.
Vì vậy, tôi đã thay đổi tệp .apk thành tệp .zip giải nén nó và tìm thấy thư mục lib có tệp này ở đó /x86_64/darwin/libscrypt.dylib vì vậy để xóa mã này, tôi đã thêm một mã trong mô-đun build.gradle của mình bên dưới phần android (nghĩa là )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Chúc mừng giải quyết vấn đề
Trong trường hợp chung để tìm ra phụ thuộc thư viện nào có ABI không tương thích,
Bạn có thể thử nâng cấp phiên bản / xóa / thay thế các thư viện này để giải quyết INSTALL_FAILED_NO_MATCHING_ABIS khi cài đặt vấn đề apk
Điều này đã xảy ra với tôi. Tôi đã kiểm tra Trình quản lý SDK và nó cho tôi biết cái tôi đang sử dụng đã có bản cập nhật. Tôi cập nhật nó và vấn đề đã biến mất.
Trong trường hợp của tôi, tôi cần tải xuống phiên bản x86 của ứng dụng.