APKのインストール時のINSTALL_FAILED_NO_MATCHING_ABIS


478

Android L Preview Intel Atom Virtual Deviceにアプリをインストールしようとしましたが、次のエラーで失敗しました:

INSTALL_FAILED_NO_MATCHING_ABIS

どういう意味ですか?


:アンドロイド3.0.1の問題については、このリンクをチェックstackoverflow.com/a/49473570/3400991
Shobhakar Tiwariさん

回答:


633

INSTALL_FAILED_NO_MATCHING_ABISネイティブライブラリがあり、CPUアーキテクチャ用のネイティブライブラリがないアプリをインストールしようとしているときです。たとえば、armv7用のアプリをコンパイルし、それをIntelアーキテクチャを使用するエミュレータにインストールしようとすると、機能しません。


1
@DanielOchoaプレビューリリース用に2つの画像を維持する必要がないためです。Lが正式にリリースされたとき、私はIntel x86イメージもあると確信しています。
Hiemanshu Sharma 2014

1
この問題を克服する方法。Genymotion Emulaterを使用していますが、gappsとGenymotion-ARM-Translation_v1.1をインストールしても、この問題が発生します。
Prashant Maheshwari Andro 2015

3
ARMトランスレータを使用している場合でも、Genymotionでこの問題が発生するのは、Google Nexus 10などのx86仮想デバイスを作成しているためです。代わりに、カスタムタブレットのようなARM仮想デバイスを選択してください。
enl8enmentnow 2015年

1
これが5.1.1を実行しているNexus 9で機能しない理由。4.4.2を実行しているSony Xperia Z2タブレットで正常に動作します。コンパイルされたSdk 21、22分をターゲットとする最小17アブ
クマ

3
WindowsマシンでNexus 5x用のAndroid Studioエミュレーターを使用しているときにこの問題が発生しました。速度上の理由から[10倍速く]デフォルトでは、Intel x86アーキテクチャで動作しているかのように電話をシミュレートしています[Nexus 5xのSnapdragon 808は実際にはARMに基づいています:tomshardware.com/reviews/lg-g4,4353-2.html ] 。AVDマネージャーに入るエラーを修正し、エラーの原因となったシミュレーションデバイスを選択し、ARM(armeabi-v7a)アーキテクチャーをセットアップする[編集]ボタンをクリックしました。この変更とエミュレーターの再起動後、インストールは問題なく
Antonino

150

INSTALL_FAILED_NO_MATCHING_ABISは、ネイティブライブラリがあり、CPUアーキテクチャ用のネイティブライブラリがないアプリをインストールしようとしている場合です。たとえば、armv7用のアプリをコンパイルし、それをIntelアーキテクチャを使用するエミュレータにインストールしようとすると、機能しません。

Visual Studio 2015でXamarinを使用します。 この問題を修正するには:

  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 for Macでも機能することが報告されています。


6
そのソリューションは、Xamarin.AndroidプロジェクトのVisual Studio 2017でも機能しました。
corentinaltepe 2017年

1
これは、Android WebViewアプリプロジェクトを使用するときにも機能しました
JRodd

4
それはXamarinのようで、毎日、新しい予期しないオブスタックがあり、アプリケーションの実行を妨げています(昨日は機能していました)。私のcsprojファイルはDropboxにあるため、バージョン履歴を確認でき、このプロパティは昨日ファイルになかったため、完全に欠落していました。今日、アプリを実行するためにx86オプションを追加する必要がありました。いったいなぜxamarinまたはandroidが突然異なるデフォルト値を使用しているのですか?これはとてもイライラします!とにかく、あなたのような人々のおかげで、私は克服して仕事を続けることができます。どうもありがとう、そしてあなたに+1を!
TMan 2018

2
何度も賛成できることを願っています...テストされ、VS 2017 for Macで作業しています。
JordiVilaplana

Visual Studio Community 2019 for Macの場合:1. Androidプロジェクトを右クリックします2. [オプション]をクリックします3. [Androidビルド]をクリックします4.詳細
null

87

別のスレッドからの回答を投稿しています。これは私にとってうまくいったからです。トリックは、両方のアーキテクチャのサポートを追加することです。

これを投稿するのは、直接的な答えが見つからず、目的の結果を得るためにいくつかの異なる投稿を確認する必要があったためです...

これをモジュールのbuild.gradleスクリプトandroid {}ブロック内に追加するだけで、x86 Accelerated(HAXM)エミュレーターを使用できました。

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

実行(ビルド)...これで、出力フォルダーに(yourapp)-x86-debug.apkが作成されます。Runでのインストールを自動化する方法があると確信していますが、好みのHAXMエミュレーターを起動してコマンドラインを使用するだけです。

adb install (yourapp)-x86-debug.apk

2
失敗[INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim

うまくいきませんでした(yourapp)-x86-debug.apk。プロジェクトの出力でファイルが見つかりませんでした。
Eido95 2017年

APKを分割する必要はありませんが、それはオプションですか?@DrissBounouar
ericn

おそらく両方のアーキテクチャーを持つユニバーサルAPKを使用できます。
Driss Bounouar

まだ同じ問題に直面しています
Vikash Parajuli 2018年

61

Genymotionを使用している場合は、ARM TranslationとGAppをインストールする必要があります


使用した一部のAPIでは、「ARM Translation Installer v1.1」と「GApps for your Android version」の両方を追加する必要があります。
saneryee 2015年

4
更新2017年5月28日:このガイドはサポートされなくなったため、おそらく機能しません。それを使用したり、サポートを求めたりしないでください。xda-developersから
AndroidCoolestRulest 2017

1
このリンクからARM翻訳をインストールできます
Devansh Maurya '10

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これはデバッグと製品の両方に使用できます。プロジェクトをクリーンアップしようとしましたか?または、Android Studioを無効化/再起動しますか?
IgorGanapolsky 2016年

1
@ user3241111コマンドラインターミナルビルドにgradlewを使用している場合でも、gradleを使用してプロジェクトをクリーンアップできます。
IgorGanapolsky 2016年

1
私はこのソリューションを試してみましたが、うまくいきました。私のプロジェクトでは、APP_ABIはありませんでした。しかし、私はそれに応じてそれを追加し、それは1つのAPKだけを構築し、それは機能します。stackoverflow.com/a/35565901/3241111
myDoggyWritesCode

1
また、有効にしたgradleデーモンを追加したところ、処理
速度が大幅に向上し

11

私はここにたくさんの答えがあったことを知っていますが、TL; DRバージョンはこれです(Xamarin Studioを使用している場合):

  1. ソリューションツリーでAndroidプロジェクトを右クリックします
  2. 選択する Options
  3. に行く Android Build
  4. Advancedタブに移動
  5. エミュレータで使用しているアーキテクチャを確認します(おそらくx86/ armeabi-v7a/ armeabi
  6. キックアプリを作る:)

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を使用して問題を解決するための回答になるはずです。

ARMトランスレータを使用している場合でも、Genymotionでこの問題が発生するのは、Google Nexus 10などのx86仮想デバイスを作成しているためです。代わりに、カスタムタブレットのようなARM仮想デバイスを選択してください。


1
私はMacで作業しており、おそらくx86仮想デバイス用にビルドされています。私もgenymotionカスタムタブレットで試してみましたが、機能せず、インストール中に同じエラーが発生しました
myDoggyWritesCode

7

これは私のために働いた... Android> Gradle Scripts> build.gradle(Module:app)add inside android *

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

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

ここに画像の説明を入力してください



6

私は、androidスコープ内のパッケージオプションであるbuild.gradle(モジュールアプリ内)に追加されたbitcoinJライブラリ(org.bitcoinj:bitcoinj-core:0.14.7)を使用してこの問題を抱えていました。それは私を助けました。

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

ありがとう。これは、ビットコインJの統合に役立ちました。
Umer Kiani

どうもありがとうございます。多くの解決策を試してみましたが、この解決策は私にとってはうまくいきます。私の問題は、scrypt-1.4.0.jarがAndroid Pieバージョン(Nokia 7.1)にインストールされないことです。デバイス
Sagar Pithiya

3

私の場合、xamarinプロジェクトで、プロパティを選択してVisual Studioエラーを削除しました-> Androidオプションを選択し、共有ランタイムの使用と高速展開の使用をチェックします。 ここに画像の説明を入力してください


2

Macのgenymotionの場合、APKのインストール中にINSTALL_FAILED_NO_MATCHING_ABISエラーが発生しました。

私のプロジェクトでは "APP_ABI"はありませんでしたが、それに応じて追加しました。両方のアーキテクチャで1つのAPKしかビルドしませんでしたが、うまくいきました。 https://stackoverflow.com/a/35565901/3241111


2

Visual Studio Community Edition 2017では、AndroidオプションからサポートされているABIの選択が機能しない場合があります。

その場合、.csprojに次の行があり、同じビルド構成に重複する行がないことを確認してください。

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

編集するには、

  1. Androidプロジェクトをアンロードする
  2. 右クリックして「プロジェクトの編集...」を選択します。
  3. ビルド構成で上記の行が1回だけあることを確認してください
  4. セーブ
  5. Androidプロジェクトを右クリックして、再読み込みします

1

基本的に上記のすべてを試しても同じエラー「私もこの問題に直面しているため」が発生する場合は、追加した.jarまたは.aarまたはモジュールがndkを使用する1つのライブラリであり、8.0をサポートしていないことを確認してください(Oreo)+、同様に.jarファイルを追加するMicrosoft SignalRソケットライブラリを使用していて、その後、Oreoにアプリがインストールされていないことがわかりました。その後、現在そのgitページに解決策がないため、そのライブラリを削除し、別のライブラリを探します。

そのため、使用しているライブラリを確認し、必要な場合は検索してください。


1

この問題は、Android 7(Nougat)からAndroid 8(Oreo)に移行したときに発生しました。

私は上記のいくつかの方法を試しましたが、不運にも何もうまくいきませんでした。

だから私は.apkファイルを.zipファイルに変更してそれを抽出し、このファイルがあった/x86_64/darwin/libscrypt.dylibが見つかったlibフォルダーを見つけたので、これを削除するには、androidセクションの下のbuild.gradleモジュールにコードを追加しました(すなわち)

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

乾杯の問題は解決しました


1

一般的に、どのライブラリの依存関係に互換性のないABIがあるかを調べるには、

  • Android StudioでAPKファイルをビルド(ビルド>バンドル/ APKのビルド> APKのビルド)// 01.04.2020に実際
  • APKファイルの名前を変更し、拡張子「apk」を拡張子「zip」に置き換えます
  • zipファイルを新しいフォルダに解凍します
  • libsフォルダーに移動
  • 互換性のないABIを持つ* .jarライブラリがどれかを確認する

インストールapkの問題の場合、INSTALL_FAILED_NO_MATCHING_ABISを解決するために、バージョンをアップグレードするか、これらのライブラリを削除/置換してみてください


0

これは私に起こりました。SDK Managerを確認したところ、使用しているものに更新があることがわかりました。私はそれを更新し、問題はなくなりました。


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.