我正在尝试在Android Studio上测试OpenCV Android,但困惑于如何包含NDK。
我的目标是运行OpenCV附带的样例。六个样例中,我已经成功地运行了其中四个。唯独face-detection和native-activity出现了异常。
我怀疑问题出在我没有正确设置我的NDK。
通过谷歌搜索,我找到了很多讨论,但并不真正理解它们。这是我第一次尝试同时使用NDK和OpenCV,我的Gradle理解有限。
我在我的.bash_profile文件中设置了一个环境变量:
export ANDROID_NDK=pathTo/android-ndk-r9
我不明白如何将其传递给studio。
我看到jniFolder的参考,但不明白这些是什么,我现在应该关注吗? Stackoverflow.com/questions/17767557
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
pkgTask.jniFolders = new HashSet<File>()
pkgTask.jniFolders.add(new File(projectDir, 'native-libs'))
}
我应该把这个粘贴到我的build.gradle文件的末尾,该怎么做?
总之,我的问题是:
- 如何让Android Studio读取NDK变量?
- jniFolders到底是什么?
- 只需将其粘贴到我的build.gradle文件末尾是否足够?
对于任何遇到此问题的人,除了Xavier的答案外,以下是我的解决方法。 首先,我阅读了NDK所附带的OVERVIEW.html文件,在文档目录中。 然后,我将.mk和.cpp文件编译成.so文件。 我在示例jni目录中完成了此操作。 这将在libs文件夹中创建.so文件,我将其复制到Xavier给出的目标位置。