Ошибка 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')
}