Cette question semble avoir été posée beaucoup, mais toutes essayaient d'utiliser Eclipse pour emballer la bibliothèque à l'intérieur de l'APK. Cependant, mon besoin est d'emballer la bibliothèque à l'intérieur de l'APK (qui sera chargée ultérieurement à l'aide de System.LoadLibrary () via Java) à l'aide du système de construction Android, c'est-à-dire que je souhaite écrire un fichier Android.mk qui fait ce travail. p>
Exigence: 1. Bibliothèque partagée préburée: libtest.so 2. Écrivez un fichier Android.mk qui emballera ceci sur Libs / Armeabi-7 à l'intérieur de l'APK. P>
Je ne sais pas grand chose sur le système de construction que j'utilise, mais la compilation est effectuée à l'aide de la commande "MM" après avoir exporté les variables d'environnement requises. p>
Lorsque je fournis libtest pour local_jni_shared_libraries, il essaie de le trouver à l'intérieur de ses sentiers exportés et ne le trouve pas là-bas et donc la construction échoue. P>
Quelqu'un peut-il donner des indications sur la rédaction d'un fichier Android.mk qui emballera ma bibliothèque partagée Prebuild dans l'APK? P>
3 Réponses :
Pour précuiter votre bibliothèque natale, vous devez
JNI code> dans votre dossier de projet LI>
- Créer un dossier
libs code> dans votre dossier de projet LI>
-
Ajouter ADNROID.MK CODE> Créez le fichier dans le dossier JNI, il devrait ressembler à
Ceci: p>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := Test
LOCAL_SRC_FILES := Test.cpp
include $(BUILD_SHARED_LIBRARY)
Disons qu'il y ait un libxxx.so code> bibliothèque partagée sous
libs / armée / code> de projet que vous souhaitez emballer dans APK. Il y a 2 choses que vous devez faire dans le
android.mk code> ci-dessous:
Ensuite, vous pouvez utiliser apktool pour déballer l'apk bâti, vous trouverez le libxxx.so code> sera situé dans
libs / armée * / code>. Il est effectivement emballé dans l'APK. P> P>
J'avais deux local_jni_shared_libraires que je voulais construire dans mon APK. Je parviens à le faire en définissant ce qui suit dans mon androïde.mk:
LOCAL_MODULE_TAGS := samples
Recompilez le module J'ai pu trouver les deux bibliothèques à l'intérieur du .apk sous /lib/. " p> p>