我正在尝试让JavaCV为Android工作以获得FFMPEG库的使用。我正在遵循我在下面复制的JavaCV website中安装Android的设置说明:
Eclipse(Android 2.2或更新版本): 按照此页面上的说明操作:http://developer.android.com/training/basics/firstapp/ 转到文件>新>单击文件夹,将项目选择为父文件夹,键入“libs / armeabi”作为文件夹名称,然后单击完成。 将javacpp.jar和javacv.jar复制到新创建的“libs”文件夹中。 将所有* .so文件从javacv-android-arm.jar,opencv-2.4.3-android-arm.zip和ffmpeg-1.0-android-arm.zip直接提取到新创建的“libs / armeabi”文件夹中,没有创建任何新的子目录。 导航到项目>属性> Java构建路径>库,然后单击“添加JAR ...”。 从新创建的“libs”文件夹中选择javacpp.jar和javacv.jar。
我正在尝试在我的代码中使用FFmpegFrameGrabber类。当我运行时,我从logcat得到了这个错误:
02-01 14:40:35.550:W / dalvikvm(11583):异常Ljava / lang / UnsatisfiedLinkError;在初始化Lcom / googlecode / javacv / cpp / avutil;
时抛出02-01 14:40:35.550:W / dalvikvm(11583):异常Ljava / lang / ExceptionInInitializerError;在初始化Lcom / googlecode / javacv / cpp / avcodec;
时抛出02-01 14:40:35.550:D / AndroidRuntime(11583):关闭虚拟机
02-01 14:40:35.550:W / dalvikvm(11583):threadid = 1:线程退出,未捕获异常(组= 0x40015560)
这让我相信我的Android应用程序找不到avutil.so和avcodec.so,我把它放在了libs / armeabi文件夹中。但是,当我解压缩生成的APK eclipse时,两个文件都存在。
关于这个问题的原因的任何想法?
答案 0 :(得分:0)
对于遇到此问题的任何人,我已设置Gist提供有关如何在Android Studio 2.1.1上设置JavaCV 1.1的分步说明。
这个tut将使用JavaCV 1.1,版本1.2目前有SIGSEGV issue。 JavaCV 1.1附带FFmpeg 2.8.1。
libs
文件夹(在我的情况下为app/libs
)。app
- > F4
- > Dependencies
- > +
- > File dependencies
- >选择以前的所有 .jar 。targetSdkVersion 22
应用的build.gradle
。packagingOptions
:build.gradle
醇>
android { 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'
}
}