GitHubからいくつかのプロジェクトをテストしてAndroidStudioで遊んでいますが、apkをエミュレートしようとすると、エミュレーターを選択できません。
それは私に言います:
デバイスはx86をサポートしていますが、APKはarmeabi-v7aのみをサポートしています
なぜこれを行うのですか?
GitHubからいくつかのプロジェクトをテストしてAndroidStudioで遊んでいますが、apkをエミュレートしようとすると、エミュレーターを選択できません。
それは私に言います:
デバイスはx86をサポートしていますが、APKはarmeabi-v7aのみをサポートしています
なぜこれを行うのですか?
回答:
同じ問題が発生しました。module :appからbuild.gradleをチェックアウトします。そのような構成があることがわかります:
ndk {
abiFilters "armeabi-v7a", "x86"
}
私がすべてコメントしたとき、すべてがうまくいきました。
私はReactNativeAndroidプロジェクトに対処しようとしていました。
USBデバッグをオフにして、ハードウェアデバイスでオンに戻します。
Allow computer to connect to this device
プロンプトが最初は表示されなかったが、2回目は表示されたために機能します。
Linuxの場合:ファイル>キャッシュの無効化/電話での再起動:代わりに、このデバイスの変更を写真の転送(PTP)に請求します
Camera (PTP)
ましたがMedia Device (MTP)
、それも機能します。ありがとうございました!
同様の問題があり、以下のように「abiFilters」リストに「x86」値を追加することで解決しました-
[build.gradle(Module:app)ファイルを開きます] そしてdeafultSectionで「ndk」を検索し、それに「x86」を追加します!
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
それが役に立てば幸い!!!
armeabi
SDK 19以降をターゲットにしている場合は、おそらくドロップする必要があります。Android自体は4.4以降それをサポートしていません
私の場合、私のアプリはいくつかのネイティブライブラリを使用しています。各プラットフォームでは、対応するライブラリを構築する必要があります。
したがって、x86(またはその他の)プラットフォームのネイティブライブラリは生成されません。どこかにabifilterを追加する必要があります。
abiフィルターを指定できる場所はいくつかあります。
Application.mkは、次のように必要なプラットフォームを追加します。
APP_ABI := armeabi armeabi-v7a x86
build.gradle
abiFiltersを見つけて、次のように必要なプラットフォームを追加します。
abiFilters "armeabi","armeabi-v7a","x86"
デバイスを再接続して、開発者向けオプションをオフ/オンにする必要があります。
開発者向けオプションとデバッグを有効にするを参照してください
デバイスはx86をサポートしていますが、APKはarmeabi-v7aのみをサポートしています)
x86
エミュレータで画像を使用したようです。
別のものを作成します。必要に応じて、[その他の画像]タブを選択してARMデバイスを検索します。
または、実際のデバイスで実行します。あなたがリストしたリポジトリは、Raspberry Pi 3 / ODroidで実行することを意図していると思います。
確認できます。開発者向けオプションでUSBデバッグのオフ/オンを切り替えると、問題が解決しました。たぶん、Android Studioの[展開ターゲットの選択]ウィンドウをキャンセルし、USBデバッグを切り替えた後にアプリを再実行してみてください。
adb kill-server
adb start-server
それはWindowsOSで私のために働いています。
x86プロセッサを使用してAVDを実行すると、ARMエミュレータを使用するよりも10倍高速になりますが、ほとんどの場合、ARM用にAPKをコンパイルするだけです。x86 AVDを使用してエミュレーションをより高速に実行するには、次のことを行う必要がありました(Cocos2d-xプロジェクトの場合)。
app / jni / Android.mk
APP_ABI := armeabi-v7a:x86
gradle.properties
PROP_APP_ABI=armeabi-v7a:x86
app / build.gradle
android {
...
defaultConfig {
...
ndk {
abiFilters = []
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
}
}
}
セキュリティオプションから不明なソースを有効にしてみてください。それは私のために働いた。
私はこれを見る
ビルドにCMakeを使用している場合は、ファイル\ proj.android \ gradle.propertiesを確認し、PROP_APP_ABIを更新してx86のビルドを含めるか、armeabi-v7aまたはarm64-v8aAndroidを使用することもできます。画像。
例:PROP_APP_ABI = armeabi-v7a:arm64-v8a:x86
cmakeを使用していない場合は、\ proj.android \ app \ jni \ Application.mkを調べて、そこでABI設定を変更する必要がある場合に備えてください。