Android Studio: UnsatisfiedLinkError: сбой dlopen: /lib/arm/libuvcNative.so: перенос текста - PullRequest
0 голосов
/ 06 июля 2018

Мой AndroidStudio Project работает нормально, но когда я вызываю действие и создаю объект MediaManager из SDK, я сталкиваюсь с этой ошибкой:

07-06 20:35:18.520 6521-6521/de.sanbot.sanbotapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               Process: de.sanbot.sanbotapp, PID: 6521
                                                                               java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/de.sanbot.sanbotapp-1/base.apk"],nativeLibraryDirectories=[/data/app/de.sanbot.sanbotapp-1/lib/arm, /data/app/de.sanbot.sanbotapp-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libuvcNative.so"
                                                                                   at java.lang.Runtime.loadLibrary(Runtime.java:367)
                                                                                   at java.lang.System.loadLibrary(System.java:1076)
                                                                                   at com.qihancloud.opensdk.function.unit.MediaManager.<clinit>(MediaManager.java:77)
                                                                                   at com.qihancloud.opensdk.base.BindBaseActivity.getUnitManager(BindBaseActivity.java:674)

Это мой файл build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "de.sanbot.sanbotapp"
        minSdkVersion 23
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath true
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation(name: 'QihanOpenSDK_1.1.8.0', ext: 'aar')
    implementation 'com.skype.android.skype-android-sdk:MobileSdk:1.0.0.0'
    implementation 'org.tensorflow:tensorflow-android:1.6.0'
    implementation 'com.jakewharton:butterknife:8.5.1'
    implementation files('libs/gson-2.2.4.jar')
}

repositories {
    jcenter()
    flatDir {
        dirs 'libs'
    }
}

Я нашел этот вопрос, но я не хочу добавлять другую библиотеку. И у этого человека другая ошибка. Если я добавлю abiFilter (как предложено)

android {
    ...
    defaultConfig {
        ...
        ndk {
            abiFilters 'armeabi'
        }
    }
}

Я получаю другую ошибку:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: de.sanbot.sanbotapp, PID: 12237
                  java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/de.sanbot.sanbotapp-1/lib/arm/libuvcNative.so: has text relocations
                  at java.lang.Runtime.loadLibrary(Runtime.java:372)
                  at java.lang.System.loadLibrary(System.java:1076)
                  at com.qihancloud.opensdk.function.unit.MediaManager.<clinit>(MediaManager.java:77)
                  at com.qihancloud.opensdk.base.BindBaseActivity.getUnitManager(BindBaseActivity.java:674)

Любой намек очень мне поможет!

Обновление:

- это направление, в котором я должен идти?

1 Ответ

0 голосов
/ 12 июля 2018

Решил, изменив targetSdkVersion с 26 на 22. Не уверен, что это правильный путь, но он добился цели.

Новый build.gradle файл:

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
defaultConfig {
    applicationId "de.sanbot.sanbotapp"
    minSdkVersion 23
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    javaCompileOptions {
        annotationProcessorOptions {
            includeCompileClasspath true
        }
    }
}
...
...