Genymotionシミュレータデバイスにアプリをインストールすると、うまくインストールできません。コンソールに "INSTALL_FAILED_CPU_ABI_INCOMPATIBLE"が表示されました。別のアプリを試してみましたが、うまくインストールできました。理由はわかりません。
アプリケーション(ゲーム)は、ARMのみ。Genymotionはx86プラットフォームであるため、アプリケーションをコンパイルしてx86をターゲットにします。
ARMサポートを手動でインストールできます: http://forum.xda-developers.com/showthread.php?t=2528952
IntelliJを使用している場合、プロジェクトのデフォルト構成に関連している可能性があります。 IntelliJは、特に指定がない限り、ネイティブライブラリがLibs
フォルダーに格納されると想定します。これは通常、開発者がJAR
ライブラリを保存する場所です。 IntelliJビルドプロセスは、JAR
ファイルをAPKのネイティブファイルフォルダーにパッケージ化します。
この問題が発生した場合は、適切なHow-toを見つけることができます。
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE Intellj
これは私が抱えていた問題を解決するのに役立ちました。
あなたはここで私の答えをチェックしたいかもしれません:
intellijを使用するデバイス上のINSTALL_FAILED_CPU_ABI_INCOMPATIBLE
私はそれがIntelliJ用に書かれていることを知っていますが、Eclipseでも同様の問題が発生する可能性があり、通常のJavaファイルまたはjarライブラリはネイティブコードであり、コンパイル済みAPKに含まれていると考えています。簡単な確認方法は、最終的なAPK(単なるjarファイルであるため、ほとんどのユーティリティはそれを解凍できるはずです)を開き、表示されるものがMETA-INF
、res
、AndroidManifest.xml
、classes.dex
、およびresources.arsc
。通常のJava Androidアプリケーションに他の有効なファイルがある可能性がありますが、一般的にそこに何か他のもの、特にlibs
フォルダー、これはおそらくコンパイルプロセスの結果であり、これらの他のものはネイティブライブラリ(JNIを使用してコンパイルされたC/C++コード)であると考えています。
この場合、ネイティブコードとして使用しているJavaライブラリを解釈しないようにEclipseを構成する必要があります。私は個人的にEclipseを使用しないので、適切な設定がどこにあるかはわかりますが、 this answerに基づいて、Eclipseはプロジェクトのルートにあるlibs
フォルダーにネイティブライブラリが含まれていると自動的に想定するようです。 Java使用しているライブラリを別のフォルダ(libraries
など)に移動することもできます。
http://blog.iteedee.com/2014/02/Android-install_failed_cpu_abi_incompatible-intellj/ デバイスにAndroidアプリケーションをインストールしようとすると、INSTALL_FAILED_CPU_ABI_INCOMPATIBLEエラーが生成されますサポートされていないCPUアーキテクチャ。このエラーは通常、デバイスのCPUアーキテクチャ(x86、ARMv6、ARMv7など)用にパッケージ化されていないネイティブライブラリに関連しています。
さて、ネイティブライブラリや* .soファイルを使用しないアプリケーションがある場合、このライブラリに頭を悩ませている可能性があります。 IntelliJ IDEA IDEをAndroid開発に使用する場合、関連するすべての.JARファイルをAPKのネイティブライブラリファイルの場所にパッケージ化する可能性があります。
私の場合、同じ問題の原因は異なっていました。
Androidアプリプロジェクトの/libs
ディレクトリにいくつかの依存関係jarを追加しました。これらのjarの1つは、jarファイル内のjarなどのjar形式でライブラリをエクスポートしました。このような構造のjarを使用して作成されたapkは、x86ベースのデバイスと互換性がないことに気付きました(理由はわかりません)。