环境信息:
- HBuilderX 编译器版本:5.07(vue3)
- @dcloudio SDK 版本:3.0.0-5000720260410001
- 模拟器:Android Studio AVD,Pixel 6 API 32 x86_64 Google Play
- 模拟器页大小:4096(4KB)
-
操作系统:Windows 11
问题现象:
使用 HBuilderX 运行 uni-app 项目到 Android Studio 模拟器,编译成功、安装成功、应用已启动,但模拟器显示白屏。全新创建的
Hello World 项目也同样白屏,排除项目代码问题。logcat 关键错误日志:
WeexCore: WeexJSConnection catch: spinWaitPeer timeout
WeexCore: JSFramwork init start sender is null
WeexCore: IPCException server spinWaitPeer timeout
weex: [WXBridgeManager] invokeInitFramework ExecuteJavaScript fail
weex: [WXBridgeManager] invoke execJSService: framework.js uninitialized
WeexJSBridgeThr: avc: denied { setattr } for name="libweexjsb.so"分析:
- 调试基座的 libweexjsb.so 只有 arm64-v8a 架构,无 x86_64 版本
- 模拟器通过 ARM 翻译层加载该库,WeexCore 子进程 IPC 通信超时
- JS 引擎无法初始化,framework.js 未加载,导致白屏
- 关闭 SELinux(setenforce 0)后问题依旧,非 SELinux 权限问题
- 旧版 SDK(3.0.0-4030620241128001)在相同模拟器上是否正常?
复现步骤:
- HBuilderX 新建 uni-app 默认模板项目
- 连接 Android Studio 模拟器(Pixel 6, API 32, x86_64, Google Play)
- 运行 → 运行到手机或模拟器
- 编译安装成功,但应用白屏
期望结果: 模拟器正常显示页面内容
1 个回复
Ask小助手 - Ask社区AI助手
根据你提供的详细日志和问题分析,根本原因已经非常明确:你使用的 Android Studio 模拟器是 x86_64 架构,而 HBuilderX 当前版本的调试基座中,关键的
libweexjsb.so动态库只编译了 arm64-v8a 版本,缺少 x86_64 的库。当应用在 x86_64 模拟器上运行时,系统会尝试通过二进制翻译层来加载这个 ARM 架构的库,这个过程非常慢且不稳定,导致 WeexCore 子进程之间的 IPC 通信超时,JS 引擎无法初始化,
framework.js加载失败,最终表现为白屏。这与你分析的 5 个点完全吻合,特别是第 5 点“旧版 SDK 是否正常”的疑问,结合知识库信息来看,旧版本大概率是正常的,因为这是新版本 SDK 的一个已知变更。
解决方案
方案一(推荐):创建 ARM 架构的模拟器
这是最直接、最稳定的解决办法。Android Studio 模拟器本身支持创建 ARM 架构的镜像,这样可以原生加载
libweexjsb.so,无需翻译层,避免 IPC 超时。arm64-v8a字样的系统镜像进行下载和创建。方案二:检查并关闭 16KB 页面大小支持(如果你的模拟器已启用)
根据知识库中一个与你情况高度相似的 ISSUE 反馈 【报Bug】在16kb的模拟器里面运行Android-SDK@4.86.82519_20251110的HBuilder-HelloUniApp,app白屏,在新的 16KB 页面大小的 Android 模拟器上也会出现同样白屏和崩溃问题。你的日志中提到了“模拟器页大小:4096(4KB)”,说明你当前并未使用 16KB 页面大小,但可以检查一下,确保创建模拟器时没有勾选相关的 16KB 选项。
方案三:使用旧版本 SDK 或等待官方更新
3.0.0-4030620241128001),该版本在相同模拟器上可能支持良好。方案四(不推荐):使用真机调试
虽然真机通常是 arm64 架构,不存在此兼容性问题,但作为模拟器白屏问题的解决方案,这绕过了问题本身。如果条件允许,连接一台 Android 真机进行调试是完全没有问题的。
总结
你的分析完全正确,这并非项目代码或配置错误,而是 SDK 架构不匹配导致的必然问题。最佳实践是创建一个 ARM 架构的 AVD 进行开发。这能从根本上解决
libweexjsb.so的加载和 IPC 超时问题。希望这些信息能帮你解决问题。
要回复问题请先登录或注册
公告
更多>相关问题