41

NDK を実行してネイティブ コードをコンパイルし、ARM だけでなく Atom(x86) プロセッサでも実行しようとしています。どのように APP_ABI を設定しても、NDK は armeabi ライブラリを生成しています。APP_ABIにx86だけ入れても。そして、ファイルサイズは常に同じです。ここに私の Application.mk ファイルがあります:

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)

APP_ABI の後に何を入れても、armeabi とそのサイズは常に同じです。ここで何が問題なのですか?最新のNDKを使用しています。

4

3 に答える 3

74

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

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

于 2012-04-11T00:49:14.173 に答える
35

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

project_root/jni/Application.mk

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

アプリ_ABI:= x86

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

APP_ABI := armeabi armeabi-v7a x86 mips

于 2013-03-21T23:54:50.937 に答える
4

また、シェルコマンドAPP_ABIに直接設定することもできます:ndk-build

ndk-build APP_ABI=x86
于 2016-02-19T01:18:02.167 に答える