HBuilderX:5.34.2026102909
离线 SDK:Android-SDK@5.34.82692_20261030
工程骨架:SDK 自带 HBuilder-HelloUniApp 模板
AGP 8.7.3 / Gradle 8.11.1 / compileSdk 35 / targetSdk 33 / minSdk 21
应用:appid UNIF1A5E42,包名 uni.app.UNIF1A5E42,vue3
设备:Redmi M2104K10AC,Android 12(MIUI 13),arm64-v8a
现象
APK 安装正常、AppKey 校验通过、进程能正常启动、splash 正常关闭,但整屏纯白(连导航栏都没有)。logcat:
E weex: reportJSException >>>> instanceId:1, exception function:createInstanceContext, exception:
E weex: at fm (uni-jsframework.js:13:187069)
E weex: at (uni-jsframework.js:13:188631)
E weex: onJSException -9700,
E weex: commitCriticalExceptionRT :WX_RENDER_ERR_JS_CREATE_INSTANCE_CONTEXT
E weex: white screen cause create instanceContext failed, check js stack ->
注意:异常的 message 是空的。社区里同类问题的日志都能看到具体 JS 错误(如 Uncaught ReferenceError: require is not defined),我这边只有堆栈、没有 message,所以无从下手。
关键对照实验
同一份代码、同一份资源,用 HBuilderX 标准基座运行 → 页面正常打开
把 SDK 自带的官方示例资源(HBuilder-HelloUniApp/app/src/main/assets/apps/UNIB/www,官方 vue2 demo)连同官方模板的 AndroidManifest.xml 原文一起放进同一个离线壳 → 同样白屏,同一个异常
第 2 点是重点:连 DCloud 自己的示例资源都跑不起来,说明问题不在我这个项目的代码、资源或清单配置上。
已排除项(都试过,均无效)
appid 三处一致:assets/apps/ 目录名 / dcloud_control.xml / www/manifest.json
资源完整性:node --check 三个 JS 全部通过、无 BOM;__uniRoutes 43 条、entryPagePath 正常
aar 是否缺:与自定义基座 APK 做 dex 类集合对比,io/dcloud/** 完全等价(基座只多 io.dcloud.debug、io.dcloud.includePermissions 两个调试包)
原生库:与基座逐个对比 .so 的 CRC,全部一致(libweexcore.so 仅 6 字节 ELF 节头差异,不在代码段)
dcloud_properties.xml 精简到只保留 base 内确定存在的 feature
BuildConfig 缺失导致的 ClassNotFoundException(已加 android.defaults.buildfeatures.buildconfig=true)
UTSHooksClassArray 缺失导致的 NoSuchFieldException(已加 buildConfigField "String[]", "UTSHooksClassArray")
androidx.webkit:webkit 确认解析为 1.5.0、无版本冲突,WebViewCompat 在 dex 内
useLegacyPackaging true / false、compileSdk 36、targetSdk 28(与基座一致)、pm clear 清缓存
dcloud_control.xml 加 version="1.9.9.82692"、加 debug="true"
用 uni-jsframework-vue3-dev.js 覆盖 release 文件想拿可读堆栈 → 堆栈仍指向 so 内编译的代码
重新「生成本地打包App资源」→ 产物与上次字节完全一致
想请教三个问题
createInstanceContext failed 且异常 message 为空,怎么开启 weex/JSS 的详细日志拿到真实 JS 错误?有没有对应的 log tag 或开关?
vue3 项目离线打包,除 uniapp-v8-release.aar + utsplugin-release.aar + 上面列的配置外,还有没有必须项(比如某个 aar 或某个 manifest 属性)?
是否有已知的「基座正常、离线包白屏」的版本问题?如果需要,我可以提供完整的 logcat 和 APK 对比数据。