私は自分のアプリをAndroid LプレビューIntel Atom仮想デバイスにインストールしようとしましたが、エラーで失敗しました:
INSTALL_FAILED_NO_MATCHING_ABIS
どういう意味ですか?
INSTALL_FAILED_NO_MATCHING_ABIS
はネイティブライブラリを持っていて、あなたのcpuアーキテクチャ用のネイティブライブラリを持っていないアプリをインストールしようとしているときです。たとえば、 armv7 用にアプリケーションをコンパイルし、 Intel アーキテクチャを使用するエミュレータにインストールしようとした場合は、うまくいきません。
INSTALL_FAILED_NO_MATCHING_ABISは、ネイティブライブラリを持ち、cpuアーキテクチャ用のネイティブライブラリを持たないアプリをインストールしようとしているときです。たとえば、armv7用にアプリをコンパイルし、その代わりにIntelアーキテクチャを使用するエミュレータにインストールしようとしている場合は、うまくいきません。
Visual Studio 2015でXamarinを使用する。 この問題を解決するには:
"Supported architectures"の下で、以下をチェックしてください。
保存する
編集: /この解決方法は、Visual Studio 2017でも機能することが報告されています。
編集2: /この解決策は Mac用のVisual Studio 2017 での作業として報告されています - /。
私は別のスレッドから回答を投稿しています。なぜならそれは私にとってはうまくいったからです。トリックは両方のアーキテクチャーのサポートを追加することです。
私が直接の答えを見つけることができず、私がやりたいことを得るためにいくつかの異なる投稿を見なければならなかったので、これを投稿してください...
これを私のモジュールのbuild.gradleスクリプトInside Android {}ブロックに追加するだけで、x86アクセラレーター(HAXM)エミュレーターを使用することができました。
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
実行(ビルド)...これで、出力フォルダに(yourapp)-x86-debug.apkが作成されます。実行時に自動インストールする方法はあると確信していますが、好みのHAXMエミュレータを起動してコマンドラインを使用するだけです。
adb install (yourapp)-x86-debug.apk
Genymotionを使用している場合は、 インストールARM Translation and GApps が必要です - /
これは実際、アプリのマルチインデックス化によって引き起こされる可能性がある奇妙なエラーです。これを回避するには、アプリケーションの build.gradle ファイルで次のブロックを使用します。
Android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
私はここにたくさんの答えがあったことを知っていますが、TL; DRバージョンはこれです(Xamarin Studioを使っているなら):
Options
を選択Android Build
に行くAdvanced
タブに行きますx86
/armeabi-v7a
/armeabi
)この解決策は私のために働いた。これを試して、あなたのアプリの build.gradle ファイルに以下の行を追加してください。
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
@ enl8enmentnowのコメントは、genymotionを使用して問題を解決するための答えになるはずです。
ARMトランスレータを使用してもGenymotionでこの問題が発生する場合は、Google Nexus 10のようなx86仮想デバイスを作成しているためです。代わりにARM仮想デバイスを選択してください。カスタム錠.
私は(モジュールアプリで)build.gradleに追加されたbitcoinJライブラリ(org.bitcoinj:bitcoinj-core:0.14.7)を使用して、Androidスコープ内のパッケージオプションを使用して、この問題を抱えていました。それは私を助けました。
Android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Android 8の場合:
Apache.commons.io:2.4
それはINSTALL_FAILED_NO_MATCHING_ABISを与えます、それを2.5か2.6に変えようとしてください、そしてそれはそれを働かせるかそれをコメントアウトします。
ビジュアルスタジオコミュニティエディション2017では、AndroidオプションからサポートされているABIの選択がうまくいかない場合があります。
その場合は、.csprojに次の行があり、同じビルド構成に重複する行がないことを確認してください。
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
編集するには
Macでのgenymotionのために、私のapkをインストールしている間私はINSTALL_FAILED_NO_MATCHING_ABISエラーを得ていました。
私のプロジェクトには "APP_ABI"はありませんでしたが、それに合わせて追加したところ、両方のアーキテクチャに対して1つのapkしか作成されませんでしたが、うまくいきました。 https://stackoverflow.com/a/35565901/3241111
かなり遅くなりましたが、これに遭遇しました。これはXamarin.Android
用です。リリースモードでデバッグしようとしていないことを確認してください。リリースモードでデバッグしようとすると、まったく同じエラーになります。リリースからデバッグに切り替えるだけで、私のものは正しくインストールできました。
私の場合は、x86バージョンのアプリケーションをダウンロードする必要がありました。
基本的に上記のことをすべて試しても同じエラーが出ます。「私も前にこの問題に直面しているので」、ndkを使用しているライブラリがどれであるかを確認します。 (Oreo)+、同様に私はその.jarファイルを追加するMicrosoft SignalRソケットライブラリを使用しています、そして後で私は現在そのgitページに解決策がないので私はそのライブラリを削除します。
それで、あなたが使用しているライブラリをチェックして、もしあなたがそのライブラリを熱心に必要としていたらそれについて検索してください。
私は、Android 7(Nougat)からAndroid 8(Oreo)に移行したときに、この問題に直面しました。
私は上に挙げたいくつかの方法を試してみましたが、不幸にも何もうまくいきませんでした。
それで私は.apkファイルをそれを抽出した.Zipファイルに変えて、このファイルがあった lib フォルダを見つけました /x86_64/darwin/libscrypt.dylib そう私はこれを削除しましたmy 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'
}
歓声の問題は解決しました
これは私に起こりました。私はSDKマネージャをチェックしました、そしてそれは私が使っていたものが更新を持っていたことを私に言いました。私はそれを更新して問題は解決しました。