uni-app 三星G9730 离线打包添加64位支持后闪退
uni-app 三星G9730 离线打包添加64位支持后闪退
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | 10.14.6 (18G9323) | HBuilderX |
示例代码:
添加’arm64-v8a’支持,三星G9730闪退,官方demo就可复现
ndk {
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters ‘armeabi’,‘armeabi-v7a’,‘arm64-v8a’
}
### 操作步骤:
添加'arm64-v8a'支持,三星G9730闪退,官方demo就可复现
预期结果:
正常支持arm64-v8a
### 实际结果:
白屏报错
bug描述:
ndk添加’arm64-v8a’支持后打不开白屏
我们在云测平台和三星官方的云测平台上都没有找到这个型号的手机,但是测试了S10+和其他几款手机,都正常进入,没能复现反馈的问题。你用其他手机试试,看能不能复现问题?
其他手机都没事,就三星G9730不行,单独用X5的demo运行也有闪退问题 用uniapp离线打包非X5模式闪退,添加X5后依旧闪退。 其他项目去除X5后可正常打包。 该框架在不添加X5包时是否也内置了X5相关的webview
用云打包分别对选择X5和不选择X5进行了64位打包,打出的包在三星G9730均卡在启动页,其他手机可正常使用
手机打了补丁包升级到最新系统可以了
回复 1***@qq.com: 好的,看来是手机系统的问题。
在 uni-app 中进行离线打包时,如果添加了 64 位支持后,应用在三星 G9730 设备上出现闪退问题,可能是由于以下原因导致的。以下是一些排查和解决方案:
1. 检查 NDK 配置
确保你的 NDK 配置正确,并且支持 64 位架构。在 build.gradle
文件中,确认以下配置:
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
如果只支持 32 位架构(如 armeabi-v7a
),可能会导致在 64 位设备上闪退。
2. 检查第三方库的 64 位支持
某些第三方库可能不支持 64 位架构,导致应用在 64 位设备上崩溃。检查项目中使用的所有第三方库,确保它们都提供了 64 位的 .so
文件。
- 在
libs
或jniLibs
目录下,检查是否存在arm64-v8a
文件夹,并确认其中包含所需的.so
文件。 - 如果某些库没有 64 位支持,可以尝试移除这些库,或者联系库的开发者获取 64 位版本。
3. 检查 AndroidManifest.xml 配置
确保 AndroidManifest.xml
文件中没有错误的配置,例如错误的权限声明或 Activity 配置。
4. 检查日志
通过 logcat
查看应用崩溃时的日志,定位具体问题。可以使用以下命令:
adb logcat