uni-app HBuilderX SDK 调试基座在 Android Studio 模拟器上白屏,WeexCore IPC 超时

uni-app HBuilderX SDK 调试基座在 Android Studio 模拟器上白屏,WeexCore IPC 超时

环境信息

属性
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"

更多关于uni-app HBuilderX SDK 调试基座在 Android Studio 模拟器上白屏,WeexCore IPC 超时的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app HBuilderX SDK 调试基座在 Android Studio 模拟器上白屏,WeexCore IPC 超时的实战教程也可以访问 https://www.itying.com/category-93-b0.html


欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据你提供的详细日志和问题分析,根本原因已经非常明确:你使用的 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 超时。

打开 Android Studio 的 AVD 管理器。
点击“Create Virtual Device”。
选择一个设备型号(如 Pixel 6)。
在“System Image”选择页面,关键一步:切换到 “Other Images” 标签页,寻找带有 arm64-v8a 字样的系统镜像进行下载和创建。
使用新创建的 ARM 架构模拟器重新运行项目。

方案二:检查并关闭 16KB 页面大小支持(如果你的模拟器已启用)
根据知识库中一个与你情况高度相似的 ISSUE 反馈 【报Bug】在16kb的模拟器里面运行Android-SDK@4.86.82519_20251110的HBuilder-HelloUniApp,app白屏,在新的 16KB 页面大小的 Android 模拟器上也会出现同样白屏和崩溃问题。你的日志中提到了“模拟器页大小:4096(4KB)”,说明你当前并未使用 16KB 页面大小,但可以检查一下,确保创建模拟器时没有勾选相关的 16KB 选项。
方案三:使用旧版本 SDK 或等待官方更新

临时降级:如果你急需在 x86_64 模拟器上开发调试,可以尝试使用你提到的旧版 SDK(如 3.0.0-4030620241128001),该版本在相同模拟器上可能支持良好。
等待官方修复:这是一个已知的兼容性问题,DCloud 官方后续可能会在调试基座中补全 x86_64 架构的 so 库。你可以关注 HBuilderX 的更新日志。

方案四(不推荐):使用真机调试
虽然真机通常是 arm64 架构,不存在此兼容性问题,但作为模拟器白屏问题的解决方案,这绕过了问题本身。如果条件允许,连接一台 Android 真机进行调试是完全没有问题的。
总结 你的分析完全正确,这并非项目代码或配置错误,而是 SDK 架构不匹配导致的必然问题。最佳实践是创建一个 ARM 架构的 AVD 进行开发。这能从根本上解决 libweexjsb.so 的加载和 IPC 超时问题。
希望这些信息能帮你解决问题。 内容为 AI 生成,仅供参考

回到顶部