【问题标题】:Linking External Libraries in Android Studio (gradle)在 Android Studio (gradle) 中链接外部库
【发布时间】:2015-06-03 01:29:26
【问题描述】:

我正在使用 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++"

但仍然出现错误。有什么解决办法吗?

【问题讨论】:

    标签: android c++ gradle android-ndk


    【解决方案1】:

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

    stl    "gnustl_static"
    

    ldLibs 保留给其他库。

    摘自我的build.gradle

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多