2012-04-10 17 views
41

Sto provando a eseguire NDK per compilare codice nativo da eseguire su processore Atom (x86) e su ARM. Indipendentemente da come ho impostato APP_ABI, NDK sta generando la libreria armeabi. Anche se inserisco solo x86 per APP_ABI. E la dimensione del file è sempre la stessa. Ecco il mio file di Application.mk:Android ndk-build ignora 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) 

Non importa quello che ho messo dopo APP_ABI sto ottenendo armeabi e la sua sempre stessa dimensione. Cosa c'è di sbagliato qui? Sto usando l'ultimo NDK.

risposta

72

Si dovrebbe mettere variabile APP_ABI in Application.mk file non Android.mk file.

È scritto nella documentazione di NDK (file doc/CPU-ARCH-ABIS.html).

+0

+1 non so domanda precedente, ma mi è piaciuto aver risposto qui stavo mettendo APP_ABI : = tutto in android.mk e non funzionava, ma quando ho messo in application.mk funziona grazie mille .......... –

+1

la sua ancora un mistero per me il motivo per cui la gente non legge html file dalla directory docs in ndk :) –

+1

Nessun mistero. Ppl essere pigro. –

35

Se non si dispone di un file Application.mk, crearne uno all'interno della cartella jni sotto project root.

project_root/jni/Application.mk

piattaforma Add bersaglio di compilazione ad esso:

APP_ABI: = 86

o piattaforme:

APP _ABI: = armeabi armeabi-V7A MIPS x86

+1

il file non ha nemmeno bisogno di nient'altro in esso. e perché non leggere? è abbastanza imbarazzante che debba essere logicamente in un altro. soprattutto perché costruirà armeabi senza Application.mk! –

4

Inoltre è possibile impostare APP_ABI direttamente al ndk-build comando shell:

ndk-build APP_ABI=x86 
+0

Questo è esattamente ciò che accade sotto il cofano quando si esegue externalNativeBuild.ndkBuild in Android Studio, quindi ogni APP_ABI da Application.mk viene ignorata lì, vedi https://stackoverflow.com/a/45604243/192373 –