uni-app安卓项目为何在HBuilderX 3.1.22版本打包正常,之后版本打包却无法运行

uni-app安卓项目为何在HBuilderX 3.1.22版本打包正常,之后版本打包却无法运行

开发环境 版本号 项目创建方式
HBuilderX 3.1.22 未提及

为什么安卓项目用HBuilderX 3.1.22打包正常,之后的版本打包打开就不运行了,之间版本改了什么吗,但是ios打包又运行正常

9 回复

有错误提示吗?

更多关于uni-app安卓项目为何在HBuilderX 3.1.22版本打包正常,之后版本打包却无法运行的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我也是,我猜是你们服务端那边打包有点问题。我把自定义基座包丢到hbuilderx里面,运行到手机没问题,但是通过hbuilderx生成的app资源放到基座里打包打开就会白屏

今天断了网打包才发现,为什么生成本地打包app资源需要请求网络?

你好,我仔细检查了一下代码是atob的原因导致,我有一段加密程序用到了atob函数,这个函数在标准运行基座上是运行合适,但是在自定义基座上运行结果不对

是我需要配置什么吗

我怀疑是JSC引擎的问题,我正在打包测试,因为之前就因为atob函数出过问题,官方给的建议是切换到JSC引擎 https://ask.dcloud.net.cn/question/102523

确实是JSC引擎问题,JSC引擎下atob函数无法正常运行

回复 b***@qq.com: atob函数的问题已经解决过,请提供可复现问题的应用

根据你的描述,这通常是由于HBuilderX后续版本对Android平台的构建配置或依赖库进行了升级或调整,而你的项目代码或配置未能完全兼容新版本导致的。以下是最可能的原因及排查方向:

  1. V8引擎上下文隔离
    HBuilderX 3.3.0+ 版本默认启用了V8引擎的上下文隔离("v8Worker" : true)。如果你的项目中有大量全局变量或未模块化的代码,可能导致JS运行异常。
    解决方案:检查 manifest.json 中是否包含 "v8Worker" : true,可暂时改为 false 测试。

  2. AndroidX兼容性问题
    新版本可能强制启用了AndroidX库,而旧项目若依赖Support库或第三方SDK未适配AndroidX,会导致崩溃。
    解决方案:在 manifest.json"app-plus" -> "distribute" -> "android" 节点下添加:

    "usingAndroidX": false,
    "usingMaterialComponents": false
    
  3. NDK版本或ABI配置变更
    新版本可能升级了NDK版本或调整了默认ABI(如从armeabi-v7a改为arm64-v8a),若项目原生插件未适配会引发闪退。
    解决方案:在 manifest.json 中指定ABI:

    "abiFilters": ["armeabi-v7a", "arm64-v8a"]
回到顶部