4***@qq.com
4***@qq.com
  • 发布:2026-11-12 17:18
  • 更新:2026-11-12 17:35
  • 阅读:32

离线打包白屏 createInstanceContext failed(异常无 message)|同一份代码标准基座正常

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 家庭版 中文版

HBuilderX类型: 正式

HBuilderX版本号: 5.34

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: 红米Nort pro 10

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:
  1. HBuilderX 5.34.2026102909 打开 vue3 项目(appid UNIF1A5E42)
  2. 发行 → 原生App-本地打包 → 生成本地打包App资源
  3. 用 Android-SDK@5.34.82692 自带的 HBuilder-HelloUniApp 模板作为工程骨架
  4. 资源放入 app/src/main/assets/apps/UNIF1A5E42/www
  5. 配置 dcloud_control.xml(appid/appver)、dcloud_properties.xml、AndroidManifest.xml(io.dcloud.PandoraEntry 为 LAUNCHER,配置 dcloud_appkey)
  6. assembleDebug 打包,安装到 Android 12 / arm64-v8a 真机,启动 App

对照实验(可复现同样问题):

  1. 把 SDK 自带示例资源 HBuilder-HelloUniApp/app/src/main/assets/apps/UNIB/www(官方 vue2 demo)连同官方模板的 AndroidManifest.xml 原文一起替换进同一个工程
  2. 重新打包安装启动 → 同样白屏,同样报错

预期结果:

App 正常启动并显示 uni-app 首页(同一份代码用 HBuilderX 标准基座运行可以正常打开页面)。

实际结果:

整屏纯白,连导航栏都没有,splash 正常关闭后无任何内容。
logcat(adb logcat --pid <pid>)关键行:

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 为空,堆栈只指向 uni-jsframework.js(编译在 libweexjss.so 内),业务侧无法定位。

bug描述:

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 对比数据。

2026-11-12 17:18 负责人:DCloud_Android_zl 分享
已邀请:
DCloud_Android_zl

DCloud_Android_zl

提供一个简单可复现的工程,我验证一下

4***@qq.com

4***@qq.com (作者)

附件为满足 10 MB 限制已剔除 app/libs 的 aar(见包内 libs清单.txt,均为 SDK 自带文件,复制到 app/libs 即可编译)。完整工程(含全部 aar,46 MB)如需要可传网盘。

要回复问题请先登录或注册