我正在尝试在Android和Gradle中使用JavaCV。我写了这样的代码片段:
repositories {
mavenCentral()
maven {
url "http://maven2.javacv.googlecode.com/git/"
}
}
dependencies {
compile files('libs/android-support-v4.jar')
compile group: 'com.googlecode.javacpp', name: 'javacpp', version: '0.5'
compile group: 'com.googlecode.javacv', name: 'javacv', version: '0.5'
}我在dir外部图书馆中看到了导入的图书馆。所以我试着做这个:
...
IplImage zdjecie=cvLoadImage(Environment.getExternalStorageDirectory().getPath()+ "/1.bmp");
cvSaveImage(Environment.getExternalStorageDirectory().getPath()
+ "/2.bmp", zdjecie);
...我犯了错误:
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load jniopencv_core: findLibrary returned null...because我不知道如何处理opencv的.so文件(以及其他文件)。
那么我们应该如何在Android中使用JavaCV呢?
发布于 2014-08-31 19:51:02
1.警告:--这还不够!:
dependencies { compile group: 'org.bytedeco', name: 'javacv', version: '0.9'}2.编辑:对不起,我最近的解决方案是错误的,我贴在这里,只告诉了上面的一行。但我查过了,这对我有用:
(A)添加依赖项
dependencies {
compile group: 'org.bytedeco', name: 'javacv', version: '0.9'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.9-0.9', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.3-0.9', classifier: 'android-arm'
}( b)在项目中创建jniLibs dir (与普通libs dir相同的级别)。编辑:如果您有一些麻烦,尝试将jniLibs移动到app/src/main)。
( c)添加从OpenCV-Androd-arm.jar和ffmpeg-android-arm.jar (或您真正需要的文件)中提取的必需.so文件,以创建jniLibs dir。(如果你不知道我在说什么,你可以从JavaCV页面下载javacv-0.9-bin.zip,在里面你可以找到这2 .jars)。
发布于 2015-05-20 09:37:58
在build.gradle依赖项中插入对我有用:
compile ‘org.bytedeco:javacv:+’
compile group: ‘org.bytedeco.javacpp-presets’, name: ‘opencv’, version: ‘2.4.10–0.10', classifier: ‘android-arm’
compile group: ‘org.bytedeco.javacpp-presets’, name: ‘ffmpeg’, version: ‘2.5.1–0.10', classifier: ‘android-arm’发布于 2016-05-25 04:04:30
有关最新的解决方案(JavaCV 1.1和AndroidStudio2.1.1),请参阅我在要旨中的逐步说明。JavaCV 1.2目前不喜欢Android6。
这个tut将使用JavaCV 1.1,版本1.2目前有SIGSEGV问题。JavaCV 1.1附带了FFmpeg 2.8.1。
libs文件夹(在我的例子中是app/libs)。
app -> F4 -> Dependencies -> + -> File dependencies ->选择所有以前的.jar。targetSdkVersion 22应用程序的build.gradle。packagingOptions中设置这些build.gradle安卓{ compileSdkVersion 23 buildToolsVersion "23.0.3“
defaultConfig {
applicationId "com.example.test"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.properties'
exclude 'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.xml'
//might need these if you use openCV
//exclude 'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.properties'
//exclude 'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.xml'
}}
https://stackoverflow.com/questions/20890116
复制相似问题