Android Studio 中使用OpenCV所遇到问题
一、关于如何生成.h文件
网上查了很多资料,大部分都是说需要切换到build/intermediates/classes/debug/文件目下,然后怎么搞怎么搞,其实不必要,也不用配置-classpath的环境变量。
- 直接从 Terminal 里切换进入 <You Project> / src / main / java 目录,执行javah命令,然后 包名 + 类名,生成的.h文件便会在该路径下,如图:
二、遇到错误:
Error:Execution failed for task ':app:compileDebugNdk'.
> com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException: Process 'command '
C\:\\Tools\\adt-bundle-windows-x86_64-20140702\\android-ndk-r10c\\ndk-build.cmd'' finished with non-zero exit value 2
1. May be this is known NDK bug. Try to add empty .c file to your jni dir (like empty.c).
2. Try adding this to the build.gradle file:
android {
...
sourceSets.main {
jni.srcDirs = [ ]
}
}
注:可能是NDK的Bug,在编译时,如果你的源文件(.c和.cpp文件,不算.h)只有一个,那么最后也会有编译error,目前google还没有修复,暂时的解决办法是,在jni目录新建一个空的.c文件放在那里,就可以编译通过了。
三、遇到错误
Error:Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental. Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
Here is how to solve this issue :
- add gradle.properties file to root folder of your project
- add 'android.useDeprecatedNdk=true' to gradle.properties file
Here is my gradle.properties :
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.useDeprecatedNdk=true
And add it to root of your project :
And rebuild your project.
四、遇到错误
"com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2"
导致原因:项目中出现了重复的依赖。删除依赖项便可很容易地解决该问题。