Android模拟器无法加载NDK .so库UnsatisfiedLinkError:dlopen失败有文本重定位

时间:2016-03-30 15:36:44

标签: android android-ndk android-emulator android-library unsatisfiedlinkerror

我的应用需要 .so库(ndk)。它是为 armeabi-v7a 编译的。我在 Android Studio 1.5.1 中使用armeabi-v7a编译项目。当我在设备上运行项目(Android 4.4.2和Android 6.0)它可以正常工作时,.so lib会成功加载。

问题:我真的需要将应用程序测试到模拟器,因此我已经为使用ARM的Android 6.0创建了模拟器(armeaabi- v7a)但遗憾的是.so未成功加载,我收到以下错误: java.lang.UnsatisfiedLinkError

03-30 14:52:12.654 16379-16379/com.mondelez.trylive I/tiInterface: Trying to load libtiAndroidAR2.so
03-30 14:52:12.867 16379-16379/com.mondelez.trylive E/tiInterface: WARNING: Could not load libtiAndroidAR2.so: java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.mondelez.trylive-2/lib/arm/libtiAndroidAR2.so: has text relocations
03-30 14:52:12.868 16379-16379/com.mondelez.trylive I/ti.dfusionmobile.tiInterface: Checking interface integrity
03-30 14:52:12.906 16379-16379/com.mondelez.trylive E/art: No implementation found for boolean ti.dfusionmobile.tiInterface.JNIglobalInitialize(int) (tried Java_ti_dfusionmobile_tiInterface_JNIglobalInitialize and Java_ti_dfusionmobile_tiInterface_JNIglobalInitialize__I)

我也关注了这些帖子:

但没有帮助。

似乎lib是不兼容的,但就像我说的:它是用armeabi-v7a构建的。有人有任何建议或提示吗?

这是我的build.gradle:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.my.app"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:support-v4:23.2.0'
}

.so文件位于:project / app / src / main / jniLibs / armeabi-v7a / myLib.so。

0 个答案:

没有答案