求救大神:android studio 开发,运行时加载so失败

EL-PAAS微服务 2018-09-10 07:02:05
java.lang.UnsatisfiedLinkError: dlopen failed: library "../../../../libs/armeabi-v7a/libebase_define.so" not found

引入第三方库libebase_define.so,编译OK
但是在运行时闪退,错误日志如上,请问这个路径是在哪里配置的,为啥会加载这个目录?

1、CMakeLists.txt 配置如下:
set(distribution_DIR ${CMAKE_SOURCE_DIR}/libs)
add_library( ebase_define
SHARED
IMPORTED)

set_target_properties( ebase_define
PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/armeabi-v7a/libebase_define.so)

target_link_libraries( # Specifies the target library.
native-lib
ebase_define

# Links the target library to the log library
# included in the NDK.
${log-lib})

2、build.gradle 配置如下:
defaultConfig/externalNativeBuild:
cmake {
cppFlags ""

abiFilters "armeabi-v7a"
}

defaultConfig:
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}

3、java
public class MainActivity extends AppCompatActivity {

// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("native-lib");
System.loadLibrary("ebase_define");
}


请问,运行时,为什么按那个../../../../libs/armeabi-v7a 这个路径加载?怎么配置才能正确的找到这个so?
...全文
689 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
usecf 2018-09-11
  • 打赏
  • 举报
回复
在你工程路径下建一个libs文件夹 再创建一个armeabi-v7a的文件夹 将so库放进去 看看行不行

再一个你这个so库是32位的还是64位的 也要放到对应的路径下才行
EL-PAAS微服务 2018-09-11
  • 打赏
  • 举报
回复
难道csdn没有大神了么?安卓上用C++都是坑啊。
EL-PAAS微服务 2018-09-11
  • 打赏
  • 举报
回复
https://blog.csdn.net/lin_cloud211/article/details/82628797
安卓下C/C++开发终结版(移植开源库,Linux交叉编译android动态库,引用第三方库)
EL-PAAS微服务 2018-09-11
  • 打赏
  • 举报
回复
基本有点搞明白了,但还有点问题没有彻底解决,后面写个博客总结一下,只能说坑比较多。

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧