2013-02-01 66 views
1

我想要获得使用FFMPEG库的JavaCV为Android工作。我下面,我已经复制下面对从JavaCV website机器人安装说明:JavaCV的UnsatisfiedLinkError 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):关闭VM

02-01 14:40:35.550:W/dalvikvm(11583):线程ID = 1:螺纹与离开未捕获的异常(组= 0x40015560)

这使我相信,我的Android应用程序不能avutil.so和avcodec.so发现,这是我放在库/ armeabi文件夹。但是,当我解压APK生成的eclipse时,两个文件都存在。

有关这个问题的原因的任何想法?

回答

0

对于任何人都会碰到这个问题,我已经建立了关于如何建立JavaCV 1.1的Android 2.1.1工作室一Gist提供一步一步指令。

这个tut将使用JavaCV 1.1,1.2版本,目前有SIGSEGV issue。 JavaCV 1.1自带FFmpeg 2.8.1。

  1. 获取prebulit二进制文件here
  2. 解压缩并复制这些文件:
    • javacpp.jar必不可少)。
    • javacv.jar必需)。
    • ffmpeg.jar必不可少,如果您使用FFmpeg)。
    • ffmpeg-android-arm.jar(for arm CPU)。
    • ffmpeg-android-x86.jar(x86 CPU可选)。 纳入您项目的libs文件夹(本例为app/libs)。
  3. 点击app - >F4 - >Dependencies - >+ - >File dependencies - >选择所有以前的.jar
  4. 由于this issue暂时因为我们需要设置targetSdkVersion 22该应用的build.gradle
  5. 可能需要在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' 
} 

}

+0

链接只有望而却步的计算器答案。请在此帖子中包含解决方案的重要部分 – Raju