2012-04-10 11 views
41

Ich versuche, NDK zu laufen, um nativen Code zu kompilieren, der auf Atom (x86) -Prozessor sowie ARM läuft. Egal, wie ich APP_ABI setze, NDK erzeugt Armeeabi-Bibliothek. Auch wenn ich nur x86 für APP_ABI einstelle. Und die Dateigröße ist immer gleich. hier ist meine Application.mk Datei:Android ndk-build ignoriert 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) 

Egal, was ich nach APP_ABI habe ich armeabi und seine immer gleiche Größe bin immer. Was ist hier falsch? Ich verwende das neueste NDK.

Antwort

72

sollten Sie setzen APP_ABI Variable in Application.mk Datei nicht Android.mk Datei.

Es ist in der Dokumentation der NDK (docs/CPU-ARCH-ABIS.html Datei) geschrieben.

+0

+1 Ich weiß nicht, vorherige Frage, aber ich mochte Sie hier beantwortet habe ich anzog APP_ABI : = alles in android.mk und es hat nicht funktioniert, aber wenn ich in application.mk habe funktioniert es vielen Dank .......... –

+1

Es ist immer noch ein Geheimnis für mich, warum Menschen nicht HTML lesen Dateien aus dem docs-Verzeichnis in ndk :) –

+1

Kein Geheimnis. Ich werde faul sein. –

35

Wenn Sie keine Application.mk Datei haben, erstellen Sie eine in jni Ordner unter project root.

project_root/jni/Application.mk

Ziel hinzufügen Kompilierung Plattform es:

APP_ABI: = x86

Oder Plattformen:

APP _ABI: = armeabi armeabi-V7A x86 Mips

+1

Die Datei benötigt nicht einmal etwas anderes. und warum nicht lesen? es ist ziemlich verwirrend, dass es in einer anderen .mk logisch sein muss. zumal es arméabi ohne Application.mk bauen wird! –

4

Sie können auch APP_ABI direkt an ndk-build Shell-Befehl ein:

ndk-build APP_ABI=x86 
+0

Dies ist genau das, was unter der Haube passiert, wenn Sie externalNativeBuild.ndkBuild in Android Studio ausführen, daher wird APP_ABI von Application.mk dort ignoriert, siehe https://Stackoverflow.com/a/45604243/192373 –

Verwandte Themen