android - 将单个 native 源文件链接到 Android Studio 项目

标签 android android-studio android-ndk

我想将一个单独的源文件链接到一个 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()

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")

与上次尝试类似,这也无提示地失败了。文件未添加。

有谁知道如何将一个 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/

相关文章:

android - 使用 OAuthSignpostClient 的 android jtwitter 授权问题

android - 在运行时更改融合位置优先级

android - Android Studio 中的 lldb : select frame does not work

android - 编辑文本提示在 android studio 设计预览中不可见,但在应用程序运行时在模拟器上可见

android - 如何在android.mk文件中指定c头文件

android - 生成 apk 后 key 散列无效以及如何为许多设备解决此问题?

java - WebView下载管理器: How to download files with their default names?

android - 当用 arm 定位牛轧糖时,android studio 模拟器上没有网络

android,NDK, 将日志写入文件

Android native 代码堆栈与 Dalvik VM/ART 堆栈