Я хочу добавить еще одну библиотеку в пример android-ndk hello-libs .
В CMakeLists.txt
я добавлю:
# this is from the hello-libs sample code
add_library(lib_gperf SHARED IMPORTED)
set_target_properties(lib_gperf PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/gperf/lib/${ANDROID_ABI}/libgperf.so)
########## I add this after the sample code: ###########
add_library(lib_py SHARED IMPORTED)
set_target_properties(lib_py PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/gperf/lib/${ANDROID_ABI}/libpython.so)
И это:
target_link_libraries(
hello-libs
android
lib_gperf
#### this line ######
lib_py
log)
И скопируйте libpython.so
в каталог, где находится libgperf.so
:
![](https://i.stack.imgur.com/sNxim.png)
Также скопируйте заголовки python вкаталог include:
![enter image description here](https://i.stack.imgur.com/bEa0h.png)
Когда я нажимаю кнопку запуска:
java.lang.UnsatisfiedLinkError: dlopen failed: library "/Users/finn/Downloads/hello-libs/app/src/main/cpp/../../../../distribution/gperf/lib/arm64-v8a/libpython.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1657)
at com.example.hellolibs.MainActivity.<clinit>(MainActivity.java:36)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2747)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
Путь существует в моем компьютере, но почемуapk использовать путь моего компьютера, но не путь устройства Android?
И я использую проводник файлов устройства Android, библиотека находится в каталоге:
![enter image description here](https://i.stack.imgur.com/aqQqq.png)
Тогда как я могу заставить apk использовать правильный путь?
Или я что-то упускаю, чтобы добавить?