Android Studio 1.4,实验性插件,JNI文件夹的路径?

时间:2015-10-09 20:31:18

标签: android-ndk java-native-interface android-gradle

我使用Android Studio 1.4和实验性插件(com.android.tools.build:gradle-experimental:0.2.0)并支持NDK。

该项目有一个C文件,并通过静态库链接其余的本机代码,如下所示:

android.ndk {
    moduleName = "native"
    ldFlags += ["-g"]
    ldFlags += ["-L/Users/me/Desktop/MyApp/app/src/main/jni", "-lnative"]
}

这适用于我,从jni文件夹链接libn​​ative.a。

但是我想指定本地库相对于项目的位置 我到底该怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

android.ndk {
    moduleName = "native"
    ldFlags += ["-g"]
    ldLibs += ["-L", file("src/main/jni").absolutePath, "-lnative"]
}

请注意,我使用 ldLibs ,而不是 ldFlags - 这些使用的方式稍有不同,以伪造链接器命令行。

实际上,如果您只想添加一个库,首选语法为

ldflags += file("src/main/jni/libnative.a").absolutePath

(链接器不需要在此"src/main/jni"目录中查找其他库)。

file()是相对于当前模块的;如果要指定相对于当前项目的路径,请使用文件()