无法在Android 6.0上加载vlcjni库

时间:2016-02-17 07:26:46

标签: java vlc android-6.0-marshmallow

我构建了一个基于VLC的播放器,当我想为Android 6.0构建一个版本时,播放器无法在Android 6.0设备上启动。这是日志:无法加载vlcjni库:java.lang.UnsatisfiedLinkError:dlopen失败:/data/app/lib/arm/libvlcjni.so:有文本重定位。 我已经尝试了很多方法来解决它,但我还没有解决它。 我希望有人能告诉我这个问题。

2 个答案:

答案 0 :(得分:0)

以下是类似的问题和答案:libavcodec.so: has text relocations

  

今天,在Nexus 6(Motorola)上使用Android 6.0测试我的应用时,我收到了相同的错误消息。我通过检查清单文件中的targetSDKVersion解决了我的问题。使用“22”而非“23”作为targetSDKVersion解决了它。 (见下文)

     

<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="22" />

     

我还检查了编译版本和targetSDKversion的build.gradle文件:

     

compileSdkVersion 22 buildToolsVersion '22.0.1'

     

defaultConfig { minSdkVersion 15 targetSdkVersion 22 }

     

希望这会对你有所帮助。但是,现在这只是一个短期的解决方法,我希望我们会从metaio获得一些反馈。

     

问候,克里斯汀

答案 1 :(得分:0)

我只需要在我的Android库中创建一个libs文件夹,然后将库文件从jniLibs文件夹移动到libs文件夹。我相信这可能与较新版本的Gradle和构建工具有关。这样,您就不必降级构建工具/ Gradle。

更新:

我能够使用以下用于vlc-android的build.gradle脚本构建。我需要以下更新版本。这允许我使用SDK版本24,使用构建工具24和gradle版本2.2.0构建。看看这是否适合你。

buildscript {
    repositories {
        mavenCentral()
    jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'org.ajoberstar:gradle-git:1.3.2'
    }
}
apply plugin: 'com.android.library'
android {
    compileSdkVersion 24
    buildToolsVersion '25.0.0'

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    //noinspection GradleCompatible
    compile "com.android.support:support-v4:25.2.0"
    compile 'com.android.support:support-annotations:25.2.0'
}