问题
minSdk从21调整到24后:
java.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A==/com.rs.unity-
Bg31QvFwF4qsCwv2XCqT-w==/split_config.arm64_v8a.apk
java.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A==/com.rs.unity-
Bg31QvFwF4qsCwv2XCqT-w==/split_config.armeabi_v7a.apk
couldn't find "libcocos2djs.so"
原因
从 API 21 升级到 API 24 后,Android 应用的安装和运行机制有所不同:
Android 7.0 (API 24) 引入了 APK 拆分(Split APK)机制,会将不同的 ABI 架构拆分为多个 APK,如:
split_config.arm64_v8a.apk
split_config.armeabi_v7a.apk
如果没有正确生成或安装这些 Split APK,系统就会在尝试加载库文件时出现 NoSuchFileException。
解决
1. 确认 ABI 配置
android {
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
3. 添加 extractNativeLibs = true
android {
defaultConfig {
...
// 解决无法解压 native libs 的问题
android:extractNativeLibs = true
}
}
或者
<application
android:extractNativeLibs="true"
... >