INSTALL_FAILED_NO_MATCHING_ABIS เมื่อติดตั้ง apk


478

ฉันพยายามติดตั้งแอพลงใน Android L Preview Intel Atom Virtual Device ล้มเหลวด้วยข้อผิดพลาด:

INSTALL_FAILED_NO_MATCHING_ABIS

มันหมายความว่าอะไร?


ตรวจสอบลิงค์นี้สำหรับปัญหา Android 3.0.1: stackoverflow.com/a/49473570/3400991
Shobhakar Tiwari

คำตอบ:


633

INSTALL_FAILED_NO_MATCHING_ABISคือเมื่อคุณพยายามติดตั้งแอพที่มีไลบรารีดั้งเดิมและไม่มีไลบรารีดั้งเดิมสำหรับสถาปัตยกรรมซีพียูของคุณ ตัวอย่างเช่นหากคุณรวบรวมแอพสำหรับarmv7และพยายามติดตั้งลงบนอีมูเลเตอร์ที่ใช้สถาปัตยกรรมIntelแทนจะไม่ทำงาน


1
@DanielOchoa มันเป็นเพราะพวกเขาไม่เคยรักษาภาพสองภาพไว้สำหรับการปล่อยตัวอย่าง เมื่อ L เปิดตัวอย่างเป็นทางการฉันมั่นใจว่าจะมีอิมเมจ Intel x86 เช่นกัน
Hiemanshu Sharma

1
วิธีที่จะเอาชนะปัญหานี้ ฉันใช้ Genymotion Emulater และติดตั้ง gapps และ Genymotion-ARM-Translation_v1.1 ยังคงได้รับปัญหานี้
Prashant Maheshwari Andro

3
หากคุณมีปัญหานี้กับ Genymotion แม้ว่าจะใช้ตัวแปล ARM ก็เพราะคุณกำลังสร้างอุปกรณ์เสมือน x86 เช่น Google Nexus 10 เลือกอุปกรณ์เสมือน ARM แทนเช่นหนึ่งในแท็บเล็ตที่กำหนดเอง
enl8enmentnow

1
ความคิดใด ๆ ที่ทำให้สิ่งนี้ไม่ทำงานบน Nexus 9 ที่ทำงาน 5.1.1 มันทำงานได้ดีบนแท็บเล็ต Sony Xperia Z2 ที่ใช้ 4.4.2 รวบรวม Sdk 21, min 17 abd เป้าหมาย 22.
Bear

3
ฉันมีปัญหานี้ขณะใช้ตัวจำลอง Android Studio สำหรับ Nexus 5x บนเครื่อง Windows ของฉัน เพื่อเหตุผลด้านความเร็ว [เร็วกว่า 10 เท่า] ค่าเริ่มต้นคือการจำลองโทรศัพท์ราวกับว่ามันทำงานกับสถาปัตยกรรม Intel x86 [Snapdragon 808 ของ Nexus 5x นั้นมีพื้นฐานมาจาก ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . ฉันแก้ไขข้อผิดพลาดในการเข้าสู่ผู้จัดการ AVD เลือกอุปกรณ์จำลองที่ทำให้ฉันเกิดข้อผิดพลาดและคลิกที่ปุ่มแก้ไขที่ฉันตั้งค่าสถาปัตยกรรม ARM (armeabi-v7a) หลังจากการเปลี่ยนแปลงนี้พร้อมอีมูเลเตอร์รีบูตการติดตั้งก็ผ่านไปโดยไม่มีปัญหา
Antonino

150

INSTALL_FAILED_NO_MATCHING_ABIS คือเมื่อคุณพยายามติดตั้งแอพที่มีไลบรารี่เนทีฟและไม่มีไลบรารี่เนทีฟสำหรับสถาปัตยกรรมซีพียูของคุณ ตัวอย่างเช่นหากคุณรวบรวมแอพสำหรับ armv7 และพยายามติดตั้งลงบนอีมูเลเตอร์ที่ใช้สถาปัตยกรรม Intel แทนจะไม่ทำงาน

การใช้ Xamarin ใน Visual Studio 2015 แก้ไขปัญหานี้โดย:

  1. เปิด xamarin .sln ของคุณ
  2. คลิกขวาที่โครงการ Android ของคุณ
  3. คลิกคุณสมบัติ
  4. คลิกตัวเลือก Android
  5. คลิกแท็บ 'ขั้นสูง'
  6. ใต้ "สถาปัตยกรรมที่รองรับ" ให้ตรวจสอบสิ่งต่อไปนี้:

    1. armeabi-v7a
    2. x86
  7. บันทึก

  8. F5 (สร้าง)

แก้ไข:โซลูชันนี้ได้รับการรายงานว่าทำงานบนVisual Studio 2017เช่นกัน

แก้ไข 2:โซลูชันนี้ได้รับการรายงานว่าทำงานบนVisual Studio 2017 สำหรับ Macเช่นกัน


6
โซลูชันนั้นทำงานกับ Visual Studio 2017 ด้วยสำหรับโครงการ Xamarin.Android
corentinaltepe

1
สิ่งนี้ใช้ได้สำหรับฉันเมื่อใช้โครงการ Android WebView App
JRodd

4
ดูเหมือนว่าใน Xamarin ทุกวันมีสิ่งกีดขวางใหม่ที่ไม่คาดคิดทำให้ฉันไม่สามารถเรียกใช้แอปพลิเคชันของฉันได้ (ซึ่งทำงานเมื่อวานนี้) เนื่องจากไฟล์ csproj ของฉันอยู่ในดรอปบ็อกซ์ฉันสามารถตรวจสอบประวัติรุ่นและคุณสมบัตินี้ไม่ได้อยู่ในไฟล์เมื่อวานนี้จึงขาดหายไปทั้งหมด วันนี้ฉันต้องเพิ่มตัวเลือก x86 เพื่อให้แอปทำงานได้ ทำไมบนโลกคือ xamarin หรือ android ใช้ค่าเริ่มต้นต่างกันทันที? มันช่างน่าหงุดหงิดเหลือเกิน! อย่างไรก็ตามขอบคุณคนอย่างคุณฉันสามารถเอาชนะและทำงานต่อไปได้ ขอบคุณมากและ +1 สำหรับคุณ!
TMan

2
หวังว่าฉันจะสามารถโหวตมากกว่าหนึ่งครั้ง ... ผ่านการทดสอบและทำงานกับ VS 2017 สำหรับ Mac
JordiVilaplana

สำหรับ Visual Studio Community 2019 สำหรับ Mac: 1. คลิกขวาที่โปรเจค android ของคุณ 2. คลิกตัวเลือก 3. คลิก Android Build 4. ขั้นสูง
โมฆะ

87

ฉันโพสต์คำตอบจากหัวข้ออื่นเพราะมันทำงานได้ดีสำหรับฉันเคล็ดลับคือการเพิ่มการสนับสนุนสำหรับสถาปัตยกรรมทั้งสอง:

โพสต์สิ่งนี้เพราะฉันไม่สามารถหาคำตอบได้โดยตรงและต้องดูโพสต์ที่แตกต่างกันสองสามอย่างเพื่อให้ได้สิ่งที่ฉันต้องการ ...

ฉันสามารถใช้อีมูเลเตอร์ x86 Accelerated (HAXM) เพียงแค่เพิ่มสิ่งนี้ลงในสคริปต์ build.gradle ของโมดูลของฉัน Inside android {} block:

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

เรียกใช้ (สร้าง) ... ตอนนี้จะมี (yourapp) -x86-debug.apk ในโฟลเดอร์เอาท์พุทของคุณ ฉันแน่ใจว่ามีวิธีการติดตั้งแบบอัตโนมัติเมื่อเรียกใช้ แต่ฉันเพิ่งเริ่มต้นตัวจำลอง HAXM ที่ต้องการและใช้บรรทัดคำสั่ง:

adb install (yourapp)-x86-debug.apk

2
ล้มเหลว [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim

ไม่ได้ผลสำหรับฉันและไม่พบ(yourapp)-x86-debug.apkไฟล์ในผลลัพธ์โครงการของฉัน
Eido95

ฉันไม่ต้องการแบ่ง APK เป็นตัวเลือกใช่ไหม @DrissBounouar
ericn

คุณสามารถใช้ apk สากลได้สมมุติว่ามันมีทั้งสถาปัตยกรรม
Driss Bounouar

ยังคงเผชิญกับปัญหาเดียวกัน
Vikash Parajuli

61

หากคุณใช้ Genymotion คุณต้องติดตั้ง ARM Translation และ GApps


ใน API บางตัวที่คุณใช้คุณต้องเพิ่มทั้ง "ARM Translation Installer v1.1" และ "GApps สำหรับรุ่น Android ของคุณ"
saneryee

4
อัปเดต 28 พฤษภาคม 2017: คู่มือนี้ไม่ได้รับการสนับสนุนอีกต่อไปและอาจไม่ทำงาน โปรดอย่าใช้หรือขอการสนับสนุนอีกต่อไป จาก xda-developers
AndroidCoolestRulest

1
คุณสามารถไปที่ลิงค์นี้เพื่อติดตั้ง ARM Translation
Devansh Maurya

37

นี่เป็นข้อผิดพลาดแปลก ๆ ที่อาจเกิดจากการทำงานหลายแอพของคุณ หากต้องการหลีกเลี่ยงให้ใช้บล็อกต่อไปนี้ในไฟล์build.gradleของแอปของคุณ:

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]

1
สวัสดี นี่ทำให้การสร้างโครงการของฉันสำเร็จ แต่ก็ยังทำให้ฉันมีข้อผิดพลาดเดียวกัน ฉันกำลังทำงานกับ mac, genymotion โดยทั่วไปแล้วการตั้งค่านี้ที่คุณบอกไว้นั้นใช้เฉพาะกับรุ่นที่ใช้ในการดีบักหรือสำหรับรุ่นบิลด์เท่านั้น
myDoggyWritesCode

@ user3241111 สามารถใช้กับทั้ง debug และ prod คุณได้ลองทำความสะอาดโครงการของคุณแล้วหรือยัง หรืออาจเป็นโมฆะ / รีสตาร์ท Android Studio?
IgorGanapolsky

1
@ user3241111 หากคุณกำลังใช้ gradlew สำหรับการสร้างเทอร์มินัลบรรทัดคำสั่งคุณก็ยังสามารถล้างโครงการของคุณด้วย gradle ได้
IgorGanapolsky

1
ฉันลองวิธีนี้แล้วใช้งานได้ ... ในโครงการของฉันไม่มี APP_ABI แต่ฉันเพิ่มมันลงไปและสร้างเพียง apk เดียวและใช้งานได้ stackoverflow.com/a/35565901/3241111
myDoggyWritesCode

1
นอกจากนี้ฉันเพิ่งเพิ่ม gradle daemon ที่เปิดใช้งานและมันได้ดำเนินการมากขึ้น ... เอาล่ะขอบคุณสำหรับการสนับสนุนของคุณ :)
myDoggyWritesCode

11

ฉันรู้ว่ามีคำตอบมากมายที่นี่ แต่รุ่น TL; DR คือสิ่งนี้ (หากคุณใช้ Xamarin Studio):

  1. คลิกขวาที่โครงการ Android ในแผนผังโซลูชัน
  2. เลือก Options
  3. ไปที่ Android Build
  4. ไปที่Advancedแท็บ
  5. ตรวจสอบสถาปัตยกรรมที่คุณใช้ในโปรแกรมจำลอง (อาจเป็นx86/ armeabi-v7a/ armeabi)
  6. สร้างแอป Kickass :)

11

วิธีนี้ใช้ได้ผลสำหรับฉัน ลองทำเช่นนี้เพิ่มบรรทัดต่อไปนี้ในไฟล์build.gradleของแอป

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

11

บน Android 8:

apache.commons.io:2.4

มันให้ INSTALL_FAILED_NO_MATCHING_ABIS ลองเปลี่ยนเป็น 2.5 หรือ 2.6 และมันจะทำงานหรือแสดงความคิดเห็นออกมา


6
ขอบคุณมากคุณช่วยชีวิตฉันไว้ ฉันไม่รู้ว่าทำไมฉันถึงได้รับ: การใช้งาน 'org.apache.directory.studio:org.apache.commons.io:2.4'
Pierrick HYMBERT

7

ความคิดเห็นของ @ enl8enmentnow ควรเป็นคำตอบเพื่อแก้ไขปัญหาโดยใช้ genymotion:

หากคุณมีปัญหานี้กับ Genymotion แม้ว่าจะใช้ตัวแปล ARM ก็เพราะคุณกำลังสร้างอุปกรณ์เสมือน x86 เช่น Google Nexus 10 เลือกอุปกรณ์เสมือน ARM แทนเช่นหนึ่งในแท็บเล็ตที่กำหนดเอง


1
ฉันทำงานกับ mac และอาจเป็นรุ่นที่สร้างสำหรับอุปกรณ์เสมือน x86 ฉันลองใช้แท็บเล็ตที่กำหนดเองทางจีโนมมันยังใช้งานไม่ได้และทำให้เกิดข้อผิดพลาดเดียวกันขณะติดตั้ง
myDoggyWritesCode

7

สิ่งนี้ใช้ได้สำหรับฉัน ... Android> Gradle Scripts> build.gradle (โมดูล: แอป) เพิ่มภายใน android *

android {
  //   compileSdkVersion 27
     defaultConfig {
        //
     }
     buildTypes {
        //
     }
    // buildToolsVersion '27.0.3'

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

ป้อนคำอธิบายรูปภาพที่นี่



6

ฉันมีปัญหานี้โดยใช้ห้องสมุด bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7) เพิ่มไปยัง build.gradle (ในแอปโมดูล) ตัวเลือกบรรจุภัณฑ์ภายในขอบเขต Android มันช่วยฉัน

android {
...
    packagingOptions {
        exclude 'lib/x86_64/darwin/libscrypt.dylib'
        exclude 'lib/x86_64/freebsd/libscrypt.so'
        exclude 'lib/x86_64/linux/libscrypt.so'
    }
}

ขอบคุณ มันช่วยฉันด้วย Bitcoin J Integration
Umer Kiani

ขอบคุณมากฉันลองใช้วิธีแก้ปัญหาหลายอย่าง แต่วิธีนี้ใช้ได้ผลสำหรับฉันปัญหาของฉันคือ scrypt-1.4.0.jar ไม่ได้ติดตั้งใน Android รุ่นพาย (Nokia 7.1) อุปกรณ์
Sagar Pithiya

3

ในกรณีของฉันในโครงการ xamarin ในข้อผิดพลาด visual studio ถูกลบออกโดยการเลือกคุณสมบัติ -> ตัวเลือก Android และตรวจสอบใช้ Share run Times และใช้การปรับใช้อย่างรวดเร็วในบางกรณีหนึ่งในนั้น ป้อนคำอธิบายรูปภาพที่นี่


2

สำหรับ genymotion บน mac ฉันได้รับข้อผิดพลาด INSTALL_FAILED_NO_MATCHING_ABIS ขณะติดตั้ง apk ของฉัน

ในโครงการของฉันไม่มี "APP_ABI" แต่ฉันเพิ่มเข้าไปตามนั้นและสร้างเพียง apk เดียวสำหรับสถาปัตยกรรมทั้งสอง แต่มันก็ใช้งานได้ https://stackoverflow.com/a/35565901/3241111


2

ใน visual studio community edition 2017 บางครั้งการเลือก ABIs ที่รองรับจากตัวเลือก Android จะไม่ทำงาน

ในกรณีดังกล่าวโปรดตรวจสอบว่า. csproj มีบรรทัดต่อไปนี้และไม่มีบรรทัดที่ซ้ำกันในการกำหนดค่าบิลด์เดียวกัน

 <AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>

เพื่อแก้ไข

  1. ยกเลิกการโหลดโครงการ Android ของคุณ
  2. คลิกขวาและเลือกแก้ไขโครงการ ...
  3. ตรวจสอบให้แน่ใจว่าคุณมีบรรทัดข้างต้นเพียงครั้งเดียวในการกำหนดค่าการสร้าง
  4. บันทึก
  5. คลิกขวาที่โปรเจค Android และโหลดใหม่

1

โดยทั่วไปหากคุณลองทุกอย่างด้านบนและยังคงมีข้อผิดพลาดเดียวกัน "เพราะฉันกำลังประสบปัญหานี้มาก่อนด้วย" ให้ตรวจสอบว่า. jar หรือ. aar หรือโมดูลที่คุณเพิ่มอาจเป็นไลบรารีหนึ่งที่ใช้ ndk และหนึ่งนั้นไม่สนับสนุน 8.0 (Oreo) + ฉันกำลังใช้ซ็อกเก็ต Microsoft SignalR Library เพิ่มไฟล์. jar และในภายหลังฉันพบแอปที่ไม่ได้ติดตั้งใน Oreo หลังจากนั้นฉันก็เอาห้องสมุดนั้นออกเพราะในปัจจุบันไม่มีวิธีแก้ปัญหาในหน้าคอมไพล์แล้ว .

ดังนั้นโปรดตรวจสอบไลบรารี่ที่คุณใช้และค้นหาถ้าคุณต้องการมัน


1

ฉันประสบปัญหานี้เมื่อย้ายจาก Android 7 (Nougat) เป็น Android 8 (Oreo)

ฉันได้ลองหลายวิธีข้างต้นและฉันโชคร้ายไม่มีอะไรทำงาน

ดังนั้นฉันจึงเปลี่ยนไฟล์. apk ไปเป็นไฟล์. zip แยกออกมาและพบว่าโฟลเดอร์libซึ่งไฟล์นี้อยู่ที่นั่น/x86_64/darwin/libscrypt.dylibดังนั้นเพื่อลบนี่ฉันเพิ่มรหัสในโมดูลbuild.gradleด้านล่างของ Android ส่วน (เช่น )

packagingOptions {
    exclude 'lib/x86_64/darwin/libscrypt.dylib'
    exclude 'lib/x86_64/freebsd/libscrypt.so'
    exclude 'lib/x86_64/linux/libscrypt.so'
}

แก้ไขปัญหาไชโยแล้ว


1

ในกรณีทั่วไปเพื่อค้นหาว่าการพึ่งพาไลบรารีใดที่มี ABI ที่เข้ากันไม่ได้

  • สร้างไฟล์ APK ใน Android Studio (เมนู Build> Build Bundle (s) / APK (s)> Build APK (s)) // จริงบน 01.04.2020
  • เปลี่ยนชื่อไฟล์ APK แทนที่ส่วนขยาย "apk" ด้วยส่วนขยาย "zip"
  • คลายไฟล์ zip ไปยังโฟลเดอร์ใหม่
  • ไปที่โฟลเดอร์ libs
  • ค้นหาว่าไลบรารี * .jar ใดที่มี ABIs ที่เข้ากันไม่ได้

คุณอาจลองอัพเกรดรุ่น / ลบ / แทนที่ไลบรารีเหล่านี้เพื่อแก้ปัญหา INSTALL_FAILED_NO_MATCHING_ABIS เมื่อติดตั้งปัญหา apk


0

เรื่องนี้เกิดขึ้นกับฉัน ฉันตรวจสอบตัวจัดการ SDK และบอกฉันว่าฉันใช้อยู่มีการอัปเดต ฉันอัปเดตแล้วและปัญหาก็หายไป


0

ค่อนข้างช้า แต่เพิ่งเจอกัน Xamarin.Androidนี้สำหรับ ตรวจสอบให้แน่ใจว่าคุณไม่ได้พยายามแก้ไขข้อบกพร่องในโหมดนำออกใช้ ฉันได้รับข้อผิดพลาดเดียวกันนี้แน่นอนถ้าอยู่ในโหมดวางจำหน่ายและพยายามแก้ไขข้อผิดพลาด เพียงเปลี่ยนจากการปล่อยเป็นการดีบั๊กอนุญาตให้ฉันติดตั้งอย่างถูกต้อง


0

ในกรณีของฉันฉันจำเป็นต้องดาวน์โหลดแอปพลิเคชันรุ่น x86

  1. ไปที่https://www.apkmirror.com/
  2. ค้นหาแอพ
  3. เลือกอันแรกในรายการ
  4. ดูที่ด้านบนของหน้าซึ่งมี [ชื่อ บริษัท ]> [ชื่อแอปพลิเคชัน]> [หมายเลขเวอร์ชัน]
  5. คลิกชื่อแอปพลิเคชัน
  6. คลิก 'ตัวแปรทั้งหมด'
  7. รายการควรมีตัวแปร x86 ให้ดาวน์โหลด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.