我希望将单个源文件链接到Android Studio项目。我正在使用新的Android Studio 1.3+与NDK支持。
在我的模块的构建。gradle文件,我可以通过:
链接整个源文件夹android{
sourceSets {
main.jni.srcDirs += 'C:/users/jforce/native'
}
}
上面的代码块会将所有本地源文件添加到'native'文件夹中。
但是,我希望添加单个源文件。如。只需要一个位于C:/users/jforce/native/test.c的文件,不需要在同一文件夹中添加任何相邻文件。
以下是我到目前为止所做的尝试:
main.jni.sourceFiles.getFiles() += "C:/users/jforce/native/test.c"
Android Studio不喜欢这个。左操作数用红色下划线下划线,当我鼠标悬停时显示"无效值分配"。这让我很困惑,因为Android/Gradle文档说这个方法返回一个带有通用参数File的Set。sourceSets.main.jni.srcDirs还返回一个具有通用参数File的Set,并且我可以合法地在该Set上使用+=运算符,但在这里不行。
https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html getfile ()
http://google.github.io/android-gradle-dsl/1.4/com.android.build.gradle.api.AndroidSourceDirectorySet.html好的,然后我试了这个:
main.jni.sourceFiles.getFiles().add("C:/users/jforce/native/test.c")
此操作静默失败。我的项目构建没有错误,但是源文件没有添加到我的项目中。
孤注一掷,我试着这样做:
main.jni.sourceFiles.join("C:/users/jforce/native/test.c")
与上次尝试类似,这也是静默失败。文件没有被添加。
有没有人知道如何正确链接一个单独的原生源文件到Android Studio 1.3+项目?任何帮助都将不胜感激。谢谢!
我明白了。
android{
sourceSets {
main.jni.srcDirs += 'C:/users/jforce/native/test.c'
}
}
。"native"文件夹中没有其他文件被添加。非常违反直觉的sourceFiles属性暴露,但我已经得到了它现在工作!