Ho una libreria condivisa libfoo.so e ho bisogno di usarla nella mia app per android.come includere le librerie condivise precompattate in apk con eclissi
Il mio primo tentativo era quello di avere in Android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.cpp
LOCAL_LDLIBS := -L$(PATH_TO_FOO) -lfoo
include $(BUILD_SHARED_LIBRARY)
nella mia attività, ho:
statis
{
System.loadLibrary("foo");
}
Questo costruisce correttamente, però ho notato che creato doesnt apk includono libfoo. così (anche io vedo che non è copiato in libs/armeabi). Credo che per questo motivo ho UnsatisfiedLinkError durante l'esecuzione della mia app.
ho visto in altri posti che ho bisogno di aggiungere $ (PREBUILD_SHARED_LIBRARY), così ho aggiungere il seguente alla mia Android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE:= foo
LOCAL_SRC_FILES := $(FOO_PATH)/libfoo.so
include $(PREBUILD_SHARED_LIBRARY)
Ma ora sto ottenendo l'errore di generazione:
foo: LOCAL_SRC_FILES points to a missing file.
Sono sicuro che il percorso è corretto. Si noti che la libfoo.so stava avendo originariamente il numero di versione alla fine, anche se ho dovuto rimuoverlo (e lasciare solo .so) da quando ndk-build si è lamentato.
Cosa sto sbagliando?
Questo non funziona per me (ADT22, Indigo, NDK-R9). La lib viene cancellata durante la compilazione. – WindRider