2015-10-09 56 views
2

我正在使用Android Studio 1.4和NDK支持的实验性插件(com.android.tools.build:gradle-experimental:0.2.0)。Android Studio 1.4,实验性插件,JNI文件夹的路径?

该项目有一个C文件,并通过静态库的本机代码的其余部分相连,这样的:

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

这个工作对我来说,从JNI文件夹链接libn​​ative.a。

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

谢谢。

回答

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"目录)。

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

+1

太棒了,谢谢!奇迹般有效。与第二个选项一起。 –