我想将一个单独的源文件链接到一个 Android Studio 项目。我正在使用支持 NDK 的新 Android Studio 1.3+。
在我模块的 build.gradle 文件中,我可以通过以下方式链接整个源文件夹:
android{
sourceSets {
main.jni.srcDirs += 'C:/users/jforce/native'
}
}
上述 block 将在“ native ”文件夹中添加所有 native 源文件。
但是,我希望添加单独的源文件。例如。只是一个位于 C:/users/jforce/native/test.c 的文件,没有在同一文件夹中添加任何相邻文件。
这是我到目前为止尝试过的:
main.jni.sourceFiles.getFiles() += "C:/users/jforce/native/test.c"
Android Studio 不喜欢这个。左侧操作数带有红色下划线,当我将鼠标悬停在上面时会显示“要分配给的值无效”。这让我感到困惑,因为 Android/Gradle 文档说此方法返回一个带有通用参数文件的集合。 sourceSets.main.jni.srcDirs 还返回一个带有通用参数文件的集合,我可以合法地对该集合使用 += 运算符,但不能在此处使用。
https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html#getFiles()
好的,然后我尝试了这个:
main.jni.sourceFiles.getFiles().add("C:/users/jforce/native/test.c")
这无声地失败了。我的项目构建没有错误,但源文件没有添加到我的项目中。
作为冰雹玛丽,我然后尝试了这个:
main.jni.sourceFiles.join("C:/users/jforce/native/test.c")
与上次尝试类似,这也无提示地失败了。文件未添加。
有谁知道如何将一个 INDIVIDUAL native 源文件正确链接到 Android Studio 1.3+ 项目?任何帮助将不胜感激。谢谢!
最佳答案
我想通了。
android{
sourceSets {
main.jni.srcDirs += 'C:/users/jforce/native/test.c'
}
}
有效。 'native' 文件夹中没有其他文件被添加。暴露的 sourceFiles 属性非常违反直觉,但我现在可以使用它了!
关于android - 将单个 native 源文件链接到 Android Studio 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32976224/