INSTALL_FAILED_NO_MATCHING_ABIS khi cài đặt apk


Câu trả lời:


633

INSTALL_FAILED_NO_MATCHING_ABISlà 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.


1
@DanielOchoa Đó là vì họ sẽ không duy trì hai hình ảnh để phát hành bản xem trước. Khi L được ra mắt chính thức, tôi chắc chắn cũng sẽ có hình ảnh Intel x86.
Hiemanshu Sharma

1
Làm thế nào để khắc phục vấn đề này. Tôi đang sử dụng Genymotion Emulater và cài đặt gapps và Genymotion-ARM-Translator_v1.1 vẫn gặp phải vấn đề này.
Prashant Maheshwari Andro

3
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.
ext8enmentnow

1
Mọi ý tưởng tại sao điều này sẽ không hoạt động trên Nexus 9 chạy 5.1.1. Nó hoạt động tốt trên máy tính bảng Sony Xperia Z2 chạy 4.4.2. Biên dịch Sdk 21, tối thiểu 17 abd nhắm mục tiêu 22.
Bear

3
Tôi gặp vấn đề này khi sử dụng trình giả lập Android Studio cho Nexus 5x trên máy Windows của mình. Vì lý do tốc độ [nhanh hơn 10 lần], mặc định đang mô phỏng điện thoại như thể nó đang hoạt động với kiến ​​trúc Intel x86 [Snapdragon 808 của Nexus 5x thực sự dựa trên ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . Tôi đã sửa lỗi vào trình quản lý AVD, chọn thiết bị mô phỏng gây ra lỗi cho tôi và nhấp vào nút Chỉnh sửa nơi tôi thiết lập kiến ​​trúc ARM (armeabi-v7a). Sau khi thay đổi này cộng với trình giả lập khởi động lại, quá trình cài đặt không có vấn đề gì
Antonino

150

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:

  1. Mở xamarin .sln của bạn
  2. Nhấp chuột phải vào dự án Android của bạn
  3. Nhấp vào thuộc tính
  4. Nhấp vào Tùy chọn Android
  5. Nhấp vào tab 'Nâng cao'
  6. Trong phần "Kiến trúc được hỗ trợ", hãy kiểm tra như sau:

    1. armeabi-v7a
    2. x86
  7. tiết kiệm

  8. F5 (bản dựng)

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 .


6
Giải pháp đó cũng hoạt động trên Visual Studio 2017, cho một dự án Xamarin.Android.
corentinaltepe

1
Điều này cũng hiệu quả với tôi khi sử dụng dự án Ứng dụng WebView trên Android
JRodd

4
Dường như trên Xamarin, vào mỗi ngày mới, có một chướng ngại vật mới, bất ngờ ngăn tôi chạy ứng dụng của tôi (hoạt động ngày hôm qua). Vì tệp csproj của tôi nằm trên dropbox, tôi có thể kiểm tra lịch sử phiên bản và thuộc tính này không có trong tệp ngày hôm qua, nó bị thiếu hoàn toàn. Hôm nay, tôi đã phải thêm tùy chọn x86 để chạy ứng dụng. Tại sao trên trái đất là xamarin hoặc Android đột nhiên sử dụng các giá trị mặc định khác nhau? Điều này thật là bực bội! Dù sao, nhờ những người như bạn, tôi có thể vượt qua và tiếp tục với công việc. Cảm ơn rất nhiều, và +1 cho bạn!
TMan

2
Ước gì tôi có thể nâng cao hơn một lần ... Đã thử nghiệm và làm việc trên VS 2017 cho Mac.
JordiVilaplana

Dành cho Visual Studio Community 2019 cho Mac: 1. Nhấp chuột phải vào dự án Android của bạn 2. Nhấp Tùy chọn 3. Nhấp vào Android Build 4. Advanced
null

87

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

2
Thất bại [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim

Không làm việc cho tôi và không thể tìm thấy (yourapp)-x86-debug.apktệp trong đầu ra dự án của tôi.
Eido95

Tôi không nhất thiết muốn chia APK, đó có phải là một lựa chọn không? @DrissBounouar
ericn

Bạn có thể sử dụng apk phổ quát, có lẽ nó có cả kiến ​​trúc.
Driss Bounouar

vẫn đối mặt với cùng một vấn đề
Vikash Parajuli

61

Nếu bạn sử dụng Genymotion, bạn cần Cài đặt Bản dịch ARM và GApps


Trong một số API mà bạn đã sử dụng, Bạn cần thêm cả "Trình cài đặt dịch thuật ARM v1.1" và "GApps cho phiên bản Android của bạn".
saneryee

4
CẬP NHẬT ngày 28 tháng 5 năm 2017: Hướng dẫn này không còn được hỗ trợ và có thể không hoạt động. Vui lòng không sử dụng nó hoặc yêu cầu hỗ trợ nữa. từ xda-developers
AndroidCoolestRulest

1
Bạn có thể theo liên kết này để cài đặt Bản dịch ARM
Devansh Maurya

37

Đâ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]

1
Chào. Điều này làm cho dự án của tôi xây dựng thành công nhưng nó vẫn gây ra lỗi tương tự. Tôi đang làm việc trên mac, genymotion. Ngoài ra, nói chung, cài đặt này mà bạn đã nói chỉ dành cho phiên bản gỡ lỗi hoặc cũng dành cho bản phát hành?
myDoggyWritesCode

@ user3241111 Điều này có thể được sử dụng cho cả gỡ lỗi và prod. Bạn đã cố gắng để làm sạch dự án của bạn. Hoặc có lẽ không hợp lệ / khởi động lại Android Studio?
IgorGanapolsky

1
@ user3241111 Nếu bạn đang sử dụng gradlew cho các bản dựng thiết bị đầu cuối dòng lệnh, thì bạn vẫn có thể làm sạch dự án của mình bằng gradle.
IgorGanapolsky

1
Tôi đã thử giải pháp này, nó đã hoạt động .. Trong dự án của tôi không có APP_ABI. Nhưng tôi đã thêm nó cho phù hợp và nó chỉ xây dựng một apk và nó hoạt động. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode

1
Ngoài ra, tôi vừa thêm trình nền lớp được kích hoạt và nó đã thúc đẩy quá trình rất nhiều ... Dù sao, cảm ơn sự hỗ trợ của bạn :)
myDoggyWritesCode

11

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):

  1. Nhấp chuột phải vào dự án Android trong cây giải pháp
  2. Lựa chọn Options
  3. Đi đến Android Build
  4. Chuyển đến Advancedtab
  5. Kiểm tra các kiến ​​trúc bạn sử dụng trong trình giả lập của bạn (Có thể là x86/ armeabi-v7a/ armeabi)
  6. Tạo một ứng dụng kickass :)

11

Giải pháp này đã làm việc cho tôi. Hãy thử điều này, thêm các dòng sau vào tệp build.gradle của ứng dụng của bạn

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}

11

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ó.


6
Cảm ơn bạn rất nhiều, bạn tiết kiệm ngày của tôi. Tôi không biết tại sao tôi nhận được: triển khai 'org.apache.directory.studio:org.apache.commons.io:2.4'
Pierrick HYMBERT

7

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.


1
Tôi đang làm việc trên mac và có lẽ nó được xây dựng cho thiết bị ảo x86. Tôi cũng đã thử với máy tính bảng tùy chỉnh genymotion, nó không hoạt động và gặp lỗi tương tự trong khi cài đặt
myDoggyWritesCode

7

đ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
               }
    }
 }

nhập mô tả hình ảnh ở đây


6

Visual Studio mac - bạn có thể thay đổi hỗ trợ tại đây:

nhập mô tả hình ảnh ở đây


6

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'
    }
}

Cảm ơn. Nó đã giúp tôi tích hợp Bitcoin J.
Umer Kiani

Cảm ơn bạn rất nhiều, tôi đã thử nhiều giải pháp nhưng giải pháp này hiệu quả với tôi. Vấn đề của tôi là về scrypt-1.4.0.jar không cài đặt trong thiết bị Android Pie (Nokia 7.1)
Sagar Pithiya

3

Trong trường hợp của tôi, trong một dự án xamarin, đã xóa lỗi trong studio hình ảnh bằng cách chọn thuộc tính -> Tùy chọn Android và kiểm tra Sử dụng Chia sẻ thời gian chạy và Sử dụng triển khai nhanh, trong một số trường hợp, một trong số đó nhập mô tả hình ảnh ở đây


2

Đố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


2

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,

  1. Dỡ bỏ dự án Android của bạn
  2. Nhấp chuột phải và chọn Chỉnh sửa dự án ...
  3. Đảm bảo rằng bạn chỉ có dòng trên một lần trong cấu hình bản dựng
  4. Tiết kiệm
  5. Nhấp chuột phải vào dự án Android của bạn và Tải lại

1

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 đó.


1

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 đề


1

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,

  • xây dựng tệp APK trong Android Studio (menu Build> Build Bundle / s (APK)> Build APK (s)) // thực tế vào ngày 01.04.2020
  • đổi tên tập tin APK, thay thế "apk" tiện ích mở rộng bằng "zip"
  • giải nén tập tin zip vào một thư mục mới
  • đi đến thư mục libs
  • tìm ra những thư viện * .jar có ABI không tương thích đang ở đó

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


0

Đ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.


0

Khá muộn, nhưng chỉ cần chạy vào đây. Đây là cho Xamarin.Android. Đảm bảo rằng bạn không cố gắng gỡ lỗi trong chế độ phát hành. Tôi nhận được chính xác lỗi đó nếu ở chế độ phát hành và cố gắng gỡ lỗi. Đơn giản chỉ cần chuyển từ phát hành sang gỡ lỗi cho phép tôi cài đặt đúng cách.


0

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.

  1. Tới https://www.apkmirror.com/
  2. Tìm kiếm ứng dụng
  3. Chọn cái đầu tiên trong danh sách
  4. Nhìn ở đầu trang, nơi có [Tên công ty]> [Tên ứng dụng]> [Số phiên bản]
  5. Nhấp vào Tên ứng dụng
  6. Nhấp vào 'Tất cả các biến thể'
  7. Danh sách nên chứa một biến thể x86 để tải xuống

0

Trong trường hợp của tôi, thiết lập tùy chọn folowing giúp tôi ra

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.