2015-12-19 18 views
7

Nella documentazione per Android NDK, la seguente dichiarazione è presente:Dove dovrebbe essere Android.mk?

Il file Android.mk risiede in una sottodirectory di JNI/directory del progetto [...] http://developer.android.com/ndk/guides/android_mk.html

I può interpretare che un file Android.mk deve essere inserito in [project_path]/jni/[module_name]/Android.mk, ogni modulo ha il proprio file specifico Android.mk poiché questo è ciò che lo differenzia dal file Application.mk a livello di applicazione, ma quando eseguo ndk-build ottengo il foll a causa messaggio di errore:

Android NDK: Non v'è alcun Android.mk sotto ./jni
Android NDK: Se questo è intenzionale si prega di definire APP_BUILD_SCRIPT al punto
Android NDK: un NDK valida costruire script.

deduco da quello che dovrei creare un singolo file Android.mk al fianco di mio file Application.mk o definire APP_BUILD_SCRIPT in Application.mk per puntare a un singolo file Android.mk. Ciò contraddice la documentazione e mi lascia chiedermi perché c'è bisogno di più makefile quando lo standard Android.mk conterrà comunque le definizioni per tutti i moduli, che potrebbe anche essere inserito in Application.mk.

letto un paio di progetti di esempio NDK ho scoperto che, in effetti, il file Android.mk si trova nella stessa directory di Application.mk ed eseguendo ndk-build su di loro sembra funzionare.

Cosa manca?

risposta

0

Posso rispondere ad alcune delle vostre domande. Hai ragione riguardo alla documentazione che crea un po 'di confusione. Se si utilizza un singolo modulo nativo, in effetti Application.mk potrebbe sembrare ridondante, ma ci sono alcune cose che possono essere impostate solo da Application.mk (si può vedere qui: Application.mk). Application.mk è pensato per le impostazioni valide per tutti i moduli, mentre Android.mk è per impostazioni specifiche del modulo. Infatti, di solito i progetti semplici hanno un singolo Android.mk e risiedono nella stessa cartella di Application.mk.

È possibile definire dove collocarli, dipende anche da come si genera il codice: ad esempio, se si sta utilizzando un'attività per la creazione di ndk utilizzando "ndk-build" e il comando comandoLine, si passa il percorso della cartella come discussione. Di solito, secondo la mia esperienza, risiedono sotto la cartella jni.