【问题标题】:dlopen failed: cannot locate symbol "av_version_info" referenced by "libjniavutil.so"dlopen 失败:找不到“libjniavutil.so”引用的符号“av_version_info”
【发布时间】:2016-06-12 12:30:10
【问题描述】:

javacv 有一个安卓“RecordActivity.java”的样本,我测试过,它在三星设备上完美运行,但不适用于华为 Honor 6。 我正在使用 javacv 1.2 版和最新的二进制文件。 错误:

06-12 16:00:37.595 10778-11036/com.example.example E/dalvikvm: dlopen("/data/app-lib/com.example.example-1/libjniavutil.so") failed: dlopen failed: cannot locate symbol "av_version_info" referenced by "libjniavutil.so"...

我试过这个https://github.com/bytedeco/javacv/issues/333,但仍然出错

我使用的是 android studio 2.1.2,这是我的 Gradle.Build:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
lintOptions { abortOnError false }


defaultConfig {
    applicationId "com.example.example"
    minSdkVersion 15
    targetSdkVersion 18
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {

    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.properties'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.xml'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.properties'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.xml'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/flandmark/pom.properties'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/flandmark/pom.xml'
}


dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.1'
compile files('libs/ffmpeg.jar')
compile files('libs/javacpp.jar')
compile files('libs/javacv.jar')

}

这是我的 libs 文件夹:

【问题讨论】:

    标签: android javacv javacpp


    【解决方案1】:

    经过几天的努力,我终于明白了:

    我一直在运行 android kitkat 的华为 Honor 6 上进行测试,因此通过在 build.gradle 中将 target sdk 更改为 19 解决了问题,但它有时会在不更改任何内容的情况下给出相同的错误,有时也可以正常工作,我意识到如果我制作一个签名的apk并安装它可以工作。所以我认为调试模式下的 android studio 不能正确复制文件。

    gradle.build:

    dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.1.1'    
    compile files('libs/ffmpeg.jar')
    compile files('libs/javacpp.jar')
    compile files('libs/javacv.jar')
    compile files('libs/opencv.jar')
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      相关资源
      最近更新 更多