2012-04-10 21 views
41

NDKを実行してネイティブコードをコンパイルし、Atom(x86)プロセッサとARMで実行しようとしています。どのようにAPP_ABIを設定しても、NDKはarmeabiライブラリを生成しています。 APP_ABIにx86だけを置いても。ファイルサイズは常に同じです。どんなに私はarmeabiとその常に同じサイズを取得していますAPP_ABI後に入れたものをAndroid ndk-buildを無視してAPP_ABI:= x86

LOCAL_PATH := $(call my-dir) 
APP_ABI := x86 
include $(CLEAR_VARS) 

LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 
LOCAL_MODULE := myjni-jni 
LOCAL_SRC_FILES := myjni-jni.c 

include $(BUILD_SHARED_LIBRARY) 

:ここに私のApplication.mkファイルです。ここで何が間違っていますか?私は最新のNDKを使用しています。

答えて

72

あなたはApplication.mkファイルではありませんAndroid.mkファイルにAPP_ABI変数を置く必要があります。

NDK(docs/CPU-ARCH-ABIS.htmlファイル)のドキュメントに記載されています。

+0

+1を私は前の質問を知らないが、私はあなたが私はAPP_ABIを入れていた、ここで答えている言っています:android.mkのすべてが動作していませんでしたが、application.mkに入れてくれてありがとうございました.......... –

+1

なぜなら、なぜ人々はhtmlを読んでいないのですかndkのdocsディレクトリのファイル:) –

+1

謎です。 Pplは怠惰です。 –

35

Application.mkファイルがない場合は、project rootの下にjniフォルダ内に作成します。

PROJECT_ROOT/JNI/Application.mk

それにターゲットコンパイルプラットフォームを追加します。

APP_ABI:= x86の

またはプラットフォーム:

APP _ABI:= armeabi armeabi-v7aののx86、MIPS

+1

ファイルには何も必要ありません。なぜ読んでいないのですか?論理的に別の.mkに入る必要があることはかなり難解です。特にApplication.mkを使わないでArmeabiをビルドする予定です! –

4

また、あなたがndk-buildシェルコマンドに直接APP_ABIを設定することができます。

ndk-build APP_ABI=x86 
+0

これは、Android StudioでexternalNativeBuild.ndkBuildを実行すると、まさにボンネットの下で起こります。したがって、Application.mkのAPP_ABIは無視されます。https://stackoverflow.com/a/45604243/192373 –

関連する問題