2015-12-19 9 views
7

In der Dokumentation für Android NDK, die folgende Anweisung vorhanden ist:Wo soll Android.mk sein?

Die Android.mk Datei jni/Verzeichnis in einem Unterverzeichnis Ihres Projekts befindet [...] http://developer.android.com/ndk/guides/android_mk.html

I kann davon interpretieren, dass eine Android.mk Datei in [project_path]/jni/[module_name]/Android.mk platziert werden sollte, jedes Modul hat seine eigene spezifische Android.mk Datei, da dies was unterscheidet es von der Anwendung weit Application.mk Datei, aber wenn ich ndk-build Datei ausführen, bekomme ich die folgenden wegen Fehlermeldung:

Android NDK: Es gibt keine Android.mk unter ./jni
Android NDK: Wenn Sie beabsichtigen diesen bitte definieren APP_BUILD_SCRIPT
Android NDK Punkt: auf ein gültiges NDK Skript bauen.

entnehme ich, dass soll ich eine einzelne Datei Android.mk neben meinem Application.mk-Datei erstellen oder APP_BUILD_SCRIPT in Application.mk definieren zu einer einzigen Android.mk-Datei zu verweisen. Dies widerspricht der Dokumentation und lässt mich fragen, warum es mehrere Makefiles gibt, wenn Android.mk sowieso die Definitionen für alle Module enthält - das könnte genauso gut in Application.mk platziert werden.

ein paar NDK Beispielprojekte Lesen Ich fand heraus, dass in der Tat die Android.mk-Datei im selben Verzeichnis wie Application.mk und Ausführung ndk-build auf sie scheint zu funktionieren.

Was fehlt?

Antwort

0

Ich kann zumindest einige Ihrer Fragen beantworten. Sie haben recht, wenn die Dokumentation ein wenig verwirrend ist. Wenn Sie ein einzelnes natives Modul verwenden, scheint die Application.mk tatsächlich redundant zu sein - aber es gibt ein paar Dinge, die nur von Application.mk gesetzt werden können (Sie können hier klicken: Application.mk). Die Application.mk ist für Einstellungen gedacht, die für alle Module gelten, während die Android.mk für bestimmte Moduleinstellungen gilt. In der Tat haben normalerweise einfache Projekte eine einzige Android.mk und befinden sich im selben Ordner wie Application.mk.

Sie können festlegen, wo sie abgelegt werden, hängt auch davon ab, wie Sie Ihren Code erstellen. Wenn Sie beispielsweise eine Aufgabe zum Erstellen von ndk mit dem Befehl 'ndk-build' und dem Befehl commandLine verwenden, übergeben Sie den Ordnerpfad als Streit. Normalerweise befinden sie sich nach meiner Erfahrung im Ordner jni.