链接单个原生源文件到Android Studio项目



我希望将单个源文件链接到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属性暴露,但我已经得到了它现在工作!

相关内容

最新更新