new*_*our 7 android opencv gradle android-ndk
当你有
android {
defaultConfig {
ndk {
moduleName "yourlib"
stl "stlport_static"
ldLibs "log", "z", "m"
cFlags "-I/some/include/dir/"
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
在build.gradle中,然后Gradle将编译src/main/jni /中的文件,它将在build/ndk/debug/Android.mk中生成一个Android.mk.
但是,就我而言,我正在尝试编译一些针对OpenCV编译的C++文件.
当我手动创建Android.mk文件并运行ndk-build命令时,我有这个工作.但我想通过Gradle/Android Studio自动完成.
手动执行此操作时,我将包含要链接的库.我这样做,在手动创建的Android.mk中,使用以下行:
include /path/to/the/opencv/directory/sdk/native/jni/OpenCV.mk
Run Code Online (Sandbox Code Playgroud)
但是,在Android的Gradle插件中,我不确定如何在生成的Android.mk文件中添加此"include"指令.
任何人都可以指向我正确的Gradle指令方向将此行添加到生成文件中吗?谢谢.
小智 8
我发现构建过程会从./src/main/jni文件夹下面提取所有内容.所以,我已经将符号链接放在其他地方包含和src文件夹 - src文件将通过构建过程枚举到.mk文件中,并且编译器将刷新inc文件.也许它有点hacky:
android {
defaultConfig {
ndk {
moduleName "yourlib"
cFlags "-std=c99 -I${project.buildDir}/../src/main/jni/inc"
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我也有不同的cFlags,具体取决于调试版本.这似乎是有效的gradle,但不想用android-studio构建.它将使用gradlew命令构建:
android {
defaultConfig {
ndk {
moduleName "yourlib"
cFlags "-std=c99 -I${project.buildDir}/../src/main/jni/inc"
}
...
}
...
buildTypes {
release {
debuggable false
jniDebugBuild false
ndk {
moduleName "yourlib"
}
}
debug {
debuggable true
jniDebugBuild true
ndk {
moduleName "yourlib"
ldLibs "log"
cFlags "-g -D_DEBUG"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望它可以帮到你(android-studio 0.8.6).
| 归档时间: |
|
| 查看次数: |
12004 次 |
| 最近记录: |