UnsatisfiedLinkError:dlopen失败:找不到库

时间:2016-01-20 14:17:52

标签: android android-studio wikitude .so

我使用了Wikitude SDK v4,当我启动Activity时出现此错误。我的IDE是Android Studio 1.5和targetSDK 22

Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/data/xxxx/libarchitect.so" not found.

我的 app / libs 文件夹中有 wikitudesdk.jar ,这是我的gradle文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "xxxx"
    minSdkVersion 11
    targetSdkVersion 23
    versionCode 2
    versionName "2"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/maven/commons-io/commons-io/pom.xml'
    exclude 'META-INF/maven/commons-io/commons-io/pom.properties'
    }
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:gridlayout-v7:23.1.1'
...

}

最佳制度

4 个答案:

答案 0 :(得分:1)

您可以尝试System.load("data/data/yourpackagename/lib/soname.so")(使用.so文件的真实路径。)

答案 1 :(得分:0)

在build.gradle文件中尝试此操作

android {
    packagingOptions {
        exclude "lib/arm64-v8a/libarchitect.so"
    }
}

答案 2 :(得分:0)

您实际使用的是targetSdkVersion 23.尝试使用targetSdkVersion 22。 它可能是.so for android 6.0中文本重定位的问题

https://code.google.com/p/android-developer-preview/issues/detail?id=3028

答案 3 :(得分:-2)

使用wikitude库时出现同样的错误。我通过将项目级build.gradle类路径还原为

来解决它
'com.android.tools.build:gradle:1.0.0' 

来自

'com.android.tools.build:gradle:1.5.0' 

还需要更改项目级别设置以使用默认gradle包装器(设置 - > 构建,执行,部署 - > Gradle