Rya*_*ner 11 android opencv gradle android-ndk android-studio
我试图在Android Studio上测试OpenCV Android,我对如何包含NDK感到困惑.
我想要做的是运行OpenCV附带的样本.在提供的6个样本中,我成功地运行了4个样本.例外是面部检测和本机活动.
我怀疑原因是我没有正确设置我的NDK.
谷歌搜索我发现了一堆讨论,但并不真正了解它们.这是我第一次尝试使用NDK和OpenCV,我的Gradle理解是有限的.
我在.bash_profile中设置了一个环境变量
export ANDROID_NDK = pathTo/android-ndk-r9
我不明白如何把它带到工作室.
我看到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'))
Run Code Online (Sandbox Code Playgroud)
}
在build.gradle文件的末尾,我应该怎么做这个粘贴?
总之,我的问题是.
对于遇到这种情况的人来说,除了Xaviers anwser之外我是如何解决它的.首先,我在docs目录中阅读NDK附带的OVERVIEW.html.然后我将.mk和.cpp文件编译成.so文件.我在示例jni目录中进行了此操作.这在libs文件夹中创建了.so文件,我将其复制到Xavier给出的目标位置.
Xav*_*het 32
如果你有使用ndk构建的库,并希望将它们放在支持gradle的android项目中(使用版本0.7.+的插件),你可以将它们放入
src/main/jniLibs/<abi>/libfoo.so
Run Code Online (Sandbox Code Playgroud)
例如:
src/main/jniLibs/armeabi-v7a/libfoo.so
src/main/jniLibs/x86/libfoo.so
Run Code Online (Sandbox Code Playgroud)
他们会自动打包.
如果要将它们保存在native-libs文件夹中,可以将以下内容放在gradle文件中:
android {
sourceSets.main {
jniLibs.srcDirs = ['native-libs']
}
}
Run Code Online (Sandbox Code Playgroud)
所有这一切确实告诉gradle主要源集的jniLibs文件夹(相对于项目根目录).
你展示的片段正在做一些与众不同的事情.它告诉包任务还包括一些本机库.这是一个hack,曾经在以前的版本中使用不再受支持的任务的未记录的API.
归档时间: |
|
查看次数: |
8793 次 |
最近记录: |