web-dev-qa-db-ja.com

genymotionデバイスにアプリをインストールします。「INSTALL_FAILED_CPU_ABI_INCOMPATIBLE」を満たす

Genymotionシミュレータデバイスにアプリをインストールすると、うまくインストールできません。コンソールに "INSTALL_FAILED_CPU_ABI_INCOMPATIBLE"が表示されました。別のアプリを試してみましたが、うまくインストールできました。理由はわかりません。

24
topxebec

アプリケーション(ゲーム)は、ARMのみ。Genymotionはx86プラットフォームであるため、アプリケーションをコンパイルしてx86をターゲットにします。

ARMサポートを手動でインストールできます: http://forum.xda-developers.com/showthread.php?t=2528952

38
slvn

IntelliJを使用している場合、プロジェクトのデフォルト構成に関連している可能性があります。 IntelliJは、特に指定がない限り、ネイティブライブラリがLibsフォルダーに格納されると想定します。これは通常、開発者がJARライブラリを保存する場所です。 IntelliJビルドプロセスは、JARファイルをAPKのネイティブファイルフォルダーにパッケージ化します。

この問題が発生した場合は、適切なHow-toを見つけることができます。

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE Intellj

これは私が抱えていた問題を解決するのに役立ちました。

7
hylander0

あなたはここで私の答えをチェックしたいかもしれません:

intellijを使用するデバイス上のINSTALL_FAILED_CPU_ABI_INCOMPATIBLE

私はそれがIntelliJ用に書かれていることを知っていますが、Eclipseでも同様の問題が発生する可能性があり、通常のJavaファイルまたはjarライブラリはネイティブコードであり、コンパイル済みAPKに含まれていると考えています。簡単な確認方法は、最終的なAPK(単なるjarファイルであるため、ほとんどのユーティリティはそれを解凍できるはずです)を開き、表示されるものがMETA-INFresAndroidManifest.xmlclasses.dex、およびresources.arsc。通常のJava Androidアプリケーションに他の有効なファイルがある可能性がありますが、一般的にそこに何か他のもの、特にlibsフォルダー、これはおそらくコンパイルプロセスの結果であり、これらの他のものはネイティブライブラリ(JNIを使​​用してコンパイルされたC/C++コード)であると考えています。

この場合、ネイティブコードとして使用しているJavaライブラリを解釈しないようにEclipseを構成する必要があります。私は個人的にEclipseを使用しないので、適切な設定がどこにあるかはわかりますが、 this answerに基づいて、Eclipseはプロジェクトのルートにあるlibsフォルダーにネイティブライブラリが含まれていると自動的に想定するようです。 Java使用しているライブラリを別のフォルダ(librariesなど)に移動することもできます。

3
FuegoFro

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のネイティブライブラリファイルの場所にパッケージ化する可能性があります。

1
ltzMaxwell

私の場合、同じ問題の原因は異なっていました。

Androidアプリプロジェクトの/libsディレクトリにいくつかの依存関係jarを追加しました。これらのjarの1つは、jarファイル内のjarなどのjar形式でライブラリをエクスポートしました。このような構造のjarを使用して作成されたapkは、x86ベースのデバイスと互換性がないことに気付きました(理由はわかりません)。

0
Pawan