在64位的Android机器上,会有32位的虚拟机和64位的虚拟机,启动apk的时候,虚拟机会根据apk中的so的位数启动对应的虚拟机。
参考:https://github.com/singwhatiwanna/dynamic-load-apk/issues/113
错误原因:Atlas host中包含arm64-v8a架构的so库,因此app运行加载64位虚拟机,而Atlas bundle中默认加载的是32位so库
解决方案:设置Atlas host和bundle均默认只加载32位so库,通常只加载armeabi架构动态链接库即可
android.defaultConfig.ndk {
abiFilters "armeabi", /*'armeabi-v7a', "arm64-v8a", */'x86'
}
android.sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}




