今天在开发中遇到了标题中的问题。

场景:

我的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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐