我正在努力将预构建的共享库包含在我的 android 项目中
有问题的库是 libusb,我的 android 项目的 NDK 部分需要它。
一切都编译和链接正常,即项目正在成功构建,但是在我的设备上安装 apk 时,应用程序崩溃了。
来自监视器的相关错误消息是:
java.lang.UnsatisfiedLinkError: dlopen failed: library "libusb1.0.so" not found
到目前为止我尝试过的是将以下内容添加到我的 app/build.gradle 中:
sourceSets{
main {
// let gradle pack the shared library into apk
jniLibs.srcDirs = '/home/me/third-party/libusb-1.0.21/android/libs/'
}
在 CMakeLists.txt 我添加了:
set(libusb_DIR $ENV{HOME}/third-party/libusb-1.0.21/android/libs)
set(libusb_LIB usb1.0)
link_directories( ${libusb_DIR}/${ANDROID_ABI}/ )
target_link_libraries( ${libusb_LIB} )
我什至尝试过创建一个app/src/main/jniLibs
dir 并手动复制共享库的armeabi-v7a版本,libusb1.0.so
, 在那里。
安装 apk 后,监视器中仍然收到相同的错误消息。
尝试一下这个,而不是从 env 获取路径,你应该尝试 ${CMAKE_SOURCE_DIR}
set(usb_DIR ${CMAKE_SOURCE_DIR}/../../../../libs)
add_library(libusb SHARED IMPORTED)
set_target_properties(libusb PROPERTIES IMPORTED_LOCATION
${usb_DIR}/libs/${ANDROID_ABI}/libusb1.0.so)
target_link_libraries(${libusb})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)