【问题标题】:Android Studio 1.4, experimental plugin, path to JNI folder?Android Studio 1.4,实验插件,JNI 文件夹的路径?
【发布时间】:2015-10-09 20:31:17
【问题描述】:

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

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

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

这对我有用,从 jni 文件夹链接 libnative.a。

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

谢谢。

【问题讨论】:

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


    【解决方案1】:
    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() 相对于当前模块;如果要指定相对于当前项目的路径,请使用 File()

    【讨论】:

    • 太棒了,谢谢!奇迹般有效。选择第二个选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多