0

ffmpeg*.so ライブラリで IJKPlayer を使用する Android アプリがあります。小さなテスト アプリでは、IJKPlayer ライブラリは次のようなリファレンスです。

apply plugin: 'com.android.library'

android {
    // http://tools.android.com/tech-docs/new-build-system/tips
    //noinspection GroovyAssignabilityCheck
    compileSdkVersion rootProject.ext.compileSdkVersion
    //noinspection GroovyAssignabilityCheck
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        minSdkVersion 25
        targetSdkVersion rootProject.ext.targetSdkVersion
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets.main {
        jniLibs.srcDirs 'src/main/libs'
        jni.srcDirs = [] // This prevents the auto generation of Android.mk
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

apply from: new File(rootProject.projectDir, "tools/gradle-on-demand.gradle");

これは Android Studio 3.2.1 で正常に動作します。他に何もせずに Android Studio 4.1.2 でプロジェクトを開いてビルド/実行すると、アプリは次のエラーで失敗します。

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.nvp.test.nvptest-N7MgBlkuRYXx_vQKF6j4jw==/base.apk"],nativeLibraryDirectories=[/data/app/com.nvp.test.nvptest-N7MgBlkuRYXx_vQKF6j4jw==/lib/arm64, /system/lib64, /system/vendor/lib64]]] couldn't find "libijkffmpeg.so"

理由はありますか?エラー メッセージを見ると、これらは Android がライブラリを検索するディレクトリ /lib/arm64, /system/lib64, /system/vendor/lib64ですか?

この場合、ライブラリは に保存されているため、失敗するはず/lib/armeabi-v7aです。アンドロイドがこのパスを検索するにはどうすればよいですか? では、なぜ 3.2.1 で動作しないのでしょうか?

どんなヒントでも大歓迎です。

4

1 に答える 1