链接Android Studio中的外部库(gradle)

时间:2015-06-03 01:29:26

标签: android c++ gradle android-ndk

我正在使用Android Studio。我在jni文件夹中添加了所有头文件,并在jniLibs文件夹中添加了库,并在build.gradle文件中添加了路径。

sourceSets.main {
jni.srcDir 'src/main/jni'
jniLibs.srcDir 'src/main/jniLibs'
}

但我得到了undefined reference error。我在网上搜索,大多数解决方案是阻止自动ndk-build调用并编辑Android.mk文件,然后从终端运行ndk-build调用。我想链接build.gradle文件中的外部库。

其次我收到undefined reference to 'std::ios_base::Init::Init()'错误。我链接了库

ldLibs "stdc++"

但我仍然收到错误。我正在使用交叉编译的库和头文件,我想我需要链接交叉编译器提供的库。所以我喜欢这个

ldLibs "/home/xx/xx/xx/xx/arm-linux-androideabi/lib/stdc++"

但仍然收到错误。关于它的任何解决方案?

1 个答案:

答案 0 :(得分:0)

要在build.gradle中声明STL,请使用:

stl    "gnustl_static"

ldLibs保留给其他lib。

摘自build.gradle

defaultConfig {
    ndk {
        moduleName "MyModule"
        cFlags "-std=c++11 -frtti -fexceptions"
        ldLibs "atomic -llog"
        stl    "gnustl_static"
    }
}