Où est Android.mk supposé être?

Dans la documentation pour Android NDK, la déclaration suivante est présente:

Le fichier Android.mk réside dans un sous-répertoire du jni / directory de votre projet […] http://developer.android.com/ndk/guides/android_mk.html

Je peux interpréter à partir de cela qu'un fichier Android.mk doit être placé dans [project_path]/jni/[module_name]/Android.mk , chaque module ayant son propre fichier Android.mk spécifique car c'est ce qui le différencie de l'application large Application.mk , mais lorsque ndk-build je reçois le message d'erreur suivant:

Android NDK: Il n'y a pas Android.mk sous ./jni
Android NDK: si cela est intentionnel, définissez APP_BUILD_SCRIPT pour pointer
Android NDK: à un script de construction NDK valide.

Je crois que je suis censé créer un seul fichier Android.mk à côté de mon fichier Application.mk ou définir APP_BUILD_SCRIPT dans Application.mk pour indiquer un seul fichier Android.mk . Cela contredit la documentation et me laisse me demander pourquoi il est nécessaire de créer plusieurs fichiers lorsque Android.mk contiendra les définitions de tous les modules de toute façon, ce qui pourrait être placé dans Application.mk .

En lisant quelques exemples de projets NDK, j'ai découvert que, en effet, le fichier Android.mk trouve dans le même répertoire que Application.mk et l'exécution de ndk-build sur eux semble fonctionner.

Que manque-t-il?

  • Utilisation de la fonction «wildcard» de Make dans Android.mk
  • Comment compiler GCC pour Android?
  • Android NDK: Arrêt d'arrêt?
  • Comment définir la variable GNUMAKE pour que ndk-build fonctionne
  • Comment obtenir la valeur de la variable d'environnement dans Android.mk?
  • Différence entre eng et user-debug build dans Android
  • Copiez plusieurs fichiers txt dans / system using Android.mk
  • Agent Bamboo: impossible de trouver la révision Build Tools 23.0.3
  • One Solution collect form web for “Où est Android.mk supposé être?”

    Je peux répondre à au moins certaines de vos questions. Vous avez raison de savoir si la documentation est un peu déroutante. Si vous utilisez un seul module natif, en effet, Application.mk peut sembler redondant, mais il existe quelques éléments qui ne peuvent être définis que par Application.mk (vous pouvez regarder ici: Application.mk ). Application.mk est destiné aux paramètres qui s'appliquent à tous les modules, alors que Android.mk est destiné aux paramètres spécifiques du module. En effet, généralement des projets simples ont un seul Android.mk et il réside sur le même dossier que Application.mk.

    Vous pouvez définir où les placer, cela dépend également de la façon dont vous construisez votre code, par exemple, si vous utilisez une tâche pour construire ndk à l'aide de la commande 'ndk-build' et de la commandeLine, vous passez le chemin du dossier comme argument. Habituellement, selon mon expérience, ils résident sous le dossier jni.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.