将单个本机源文件链接到Android Studio项目

将单个本机源文件链接到Android Studio项目,android,android-studio,android-ndk,Android,Android Studio,Android Ndk,我正在寻找一个单独的源文件链接到Android Studio项目。我正在使用新的Android Studio 1.3+和NDK支持 在我模块的build.gradle文件中,我可以通过以下方式链接整个源文件夹: android{ sourceSets { main.jni.srcDirs += 'C:/users/jforce/native' } } 上述块将在“本机”文件夹中添加所有本机源文件 但是,我希望添加单个源文件。例如,只有一个位于C:/users/jforc

我正在寻找一个单独的源文件链接到Android Studio项目。我正在使用新的Android Studio 1.3+和NDK支持

在我模块的build.gradle文件中,我可以通过以下方式链接整个源文件夹:

android{
   sourceSets {
      main.jni.srcDirs += 'C:/users/jforce/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还返回一个带有泛型参数文件的集合,我可以合法地在该集合上使用+=运算符,但在这里不能

好吧,然后我尝试了这个:

main.jni.sourceFiles.getFiles().add("C:/users/jforce/native/test.c")
main.jni.sourceFiles.join("C:/users/jforce/native/test.c")
这一切都悄无声息地失败了。我的项目生成时没有错误,但源文件未添加到我的项目中

作为一个圣母玛利亚,我尝试了以下方法:

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'
   }
}

工作。“本机”文件夹中没有添加其他文件。sourceFiles属性的暴露非常违反直觉,但我现在已经让它工作了

您还可以尝试混合Android.mk+grade插件方法,如如何将文件链接到应用程序中所示。是否将源集添加为库模块的一部分,或者如何在应用程序中实现源文件?