Ошибка dlopen: невозможно найти символ "av_version_info", на который ссылается "libjniavutil.so"

У javacv есть образец для Android "RecordActivity.java", который я протестировал и прекрасно работает с устройствами Samsung, но не работает с Huawei 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:

1 ответ

После нескольких дней борьбы вот что я понял:

Я тестировал на Huawei honor 6 под управлением android kitkat, поэтому, изменив target sdk на 19 в build.gradle, я решил проблему, но иногда выдает ту же ошибку, ничего не меняя, а иногда работает без ошибок, и я понял, что если я сделаю подпись АПК и установить, что это работает. поэтому я думаю, что 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')

}
Другие вопросы по тегам