今天在开发中遇到了标题中的问题。
场景:
我的app依赖于一个用c++开发的so库,然后在app的CmakeLists.txt中也依赖了这个库,如下:
target_link_libraries( # Specifies the target library. native-lib xxx #so库的名称 # Links the target library to the log library # included in the NDK. ${log-lib} )
在app/libs目录下也可以找到上面的xxx.so库。
并且可以成功编译出apk,但是在运行的时候,发生了上面的错误。
问题原因:
没有在app的build.gradle文件中添加下面这就话:
// sourceSets用于指定依赖的第三方so库的存放地址 sourceSets { main { jniLibs.srcDirs = ['libs'] } }
解决方法:
在android节点下添加上述的sourceSets的配置即可。
问题2:
上面的问题解决之后,又提示找不到其它的so库,这些so库是被xxx.so库所依赖的。
解决方法是将xxx.so库所依赖的so库都拷贝到app/libs目录下。
这样就不会出现找不到so库的问题了。
参考博客:
https://blog.csdn.net/a_ycmbc/article/details/54097245