J'ai une librairie partagée libfoo.so et j'ai besoin de l'utiliser dans mon application android.comment inclure des bibliothèques partagées précompilées dans apk avec eclipse
Mon premier essai était d'avoir à Android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.cpp
LOCAL_LDLIBS := -L$(PATH_TO_FOO) -lfoo
include $(BUILD_SHARED_LIBRARY)
dans mon activité, j'ai:
statis
{
System.loadLibrary("foo");
}
Cela construit correctement, mais je ne marche pas remarqué que apk créé comprennent libfoo. donc (aussi je vois qu'il n'est pas copié à libs/armeabi). Je suppose que pour cette raison, j'ai UnsatisfiedLinkError lors de l'exécution de mon application.
j'ai vu dans certains autres postes que je dois ajouter $ (PREBUILD_SHARED_LIBRARY), donc j'ajouter ce qui suit à mon Android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE:= foo
LOCAL_SRC_FILES := $(FOO_PATH)/libfoo.so
include $(PREBUILD_SHARED_LIBRARY)
Mais maintenant, je reçois l'erreur de construction:
foo: LOCAL_SRC_FILES points to a missing file.
Je suis sûr que le chemin est correct. Notez que libfoo.so avait originellement le numéro de version à la fin, bien que je devais le supprimer (et ne laisser que .so) puisque ndk-build se plaignait.
Qu'est-ce que je fais mal?
Cela ne fonctionne pas pour moi (ADT22, Indigo, NDK-r9). La lib est supprimée lors de la construction. – WindRider