我的应用需要 .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。