uni-app 原生混淆后打开APP显示空白

uni-app 原生混淆后打开APP显示空白

开发环境 版本号 项目创建方式
Mac macOS 11.1 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

手机系统:Android

手机系统版本号:Android 10

手机厂商:华为

手机机型:honor 30

页面类型:vue

打包方式:云端

示例代码:

"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"confusion" : {
"description" : "原生混淆",
"resources" : {
"util/config.js" : {}
}
},

操作步骤:

混淆打包为APK后,安装到安卓手机,打开APP显示空白

预期结果:

打开显示正常

实际结果:

打开显示空白

bug描述:

mac版本HBuilder X,版本号为:3.1.18.20210609。混淆打包为APK后,安装到安卓手机,打开APP显示空白。取消混淆则正常。


更多关于uni-app 原生混淆后打开APP显示空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

已基本确认是bug,回退HBuilder版本到3.1.13.20210514后,正常了。

更多关于uni-app 原生混淆后打开APP显示空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html


原生混淆导致白屏通常与资源文件混淆配置有关。从你的配置看,只对 util/config.js 设置了混淆,但实际可能还有其他关键文件未被正确处理。以下是排查方向:

  1. 检查依赖资源
    确认 util/config.js 是否被其他模块动态引用。若该文件被异步加载或通过 require 引入,混淆可能导致路径解析失败。建议检查项目中所有静态和动态资源引用。

  2. 扩展混淆范围
    尝试将 resources 配置调整为更广泛的路径,例如:

    "resources": {
      "util/*.js": {},
      "common/*.js": {}
    }
    

    或直接对整个目录进行混淆测试:

    "resources": {
      "**/*.js": {}
    }
    
  3. 验证非JS资源
    若项目涉及原生插件或自定义组件,需确认 manifest.jsonusingComponents 涉及的组件路径是否被混淆影响。可暂时移除原生插件测试。

  4. 查看日志定位
    通过 adb logcat 抓取设备日志,过滤关键字 uni-appJavaScript 查看是否有报错。常见错误如文件加载失败、语法错误等。

  5. 编译器版本兼容性
    编译器版本3对混淆处理较严格,可尝试降级到版本2测试:

    "compilerVersion": 2
回到顶部