uni-app 现在的hbx都会丢资源 可以修复一下吗

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app 现在的hbx都会丢资源 可以修复一下吗

操作步骤

新建项目,把任意图片放在nativeResources\android\res\drawable中,或者原生插件目录的android\res\drawable中,上传打包自定义基座。

预期结果

打包好的apk中res/drawable中有相应的图片。

实际结果

没有这些资源。

bug描述

我是uniapp+vue2项目,有一些插件要自己上传图片资源到安卓的res/drawable或raw中
把资源如图一,上传打包自定义基座,下载下来的apk中的res中根本没有这些资源,如图二。
无论是mac还是win10都试了不行,无论是老项目还是新建的项目都不行。
现在只有4.24版本能用,其他版本都不行,4.24总有一天会下线,所以希望新版能修复这个问题。

图一 图二

开发环境、版本号及项目创建方式

信息
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 WIN10
HBuilderX类型 正式
HBuilderX版本号 4.45
手机系统 Android
手机系统版本号 Android 14
手机厂商 小米
手机机型 xiaomi13
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

5 回复

看到其他人也在问同样的问题,应该是普遍存在的问题。 https://ask.dcloud.net.cn/question/199939


manifest.json里面 设置 “enableResourceOptimizations” : false

回复 冬眠: 好的,我试试

回复 冬眠: 确实是没设置这个。

针对您提到的uni-app中HBuilderX(通常简称为HBX)在构建或打包过程中可能出现的资源丢失问题,这通常与项目配置、资源引用路径、或是构建流程中的某些环节处理不当有关。虽然具体的问题定位需要详细的错误日志和项目结构分析,但我可以提供一些常见的排查方向和可能的解决方案代码示例,帮助您检查和修复资源丢失的问题。

1. 检查资源引用路径

确保所有资源文件(如图片、字体、音频等)的路径在代码中引用正确。使用相对路径时,注意当前文件的上下文位置。

示例代码

<!-- 在Vue组件中引用图片 -->
<template>
  <image :src="require('@/static/images/logo.png')"></image>
</template>

<script>
export default {
  // ...
}
</script>

这里使用了require来确保路径被正确解析和打包。

2. 配置webpack或vite处理资源

如果uni-app项目配置了自定义的webpack或vite规则,检查相关loader配置是否正确处理了资源文件。

webpack配置示例

// vue.config.js 或 webpack.config.js
module.exports = {
  chainWebpack: config => {
    config.module
      .rule('images')
      .test(/\.(png|jpe?g|gif|svg)$/i)
      .use('file-loader')
      .loader('file-loader')
      .options({
        name: '[path][name].[hash].[ext]',
        outputPath: 'assets/images'
      })
      .end();
  }
};

3. 清理和重建项目

有时候,简单的清理项目构建缓存并重新构建可以解决问题。

命令行操作

# 清理HBuilderX的缓存和临时文件,具体路径可能需要根据HBX安装位置调整
rm -rf /path/to/HBuilderX/cache/*
rm -rf /path/to/HBuilderX/temp/*

# 重新打开HBuilderX并构建项目

4. 检查uni-app和HBuilderX版本

确保您使用的uni-app框架和HBuilderX编辑器都是最新版本,因为新版本中可能已经修复了旧版本的一些bug。

结论

由于资源丢失问题的复杂性,上述方法可能需要根据您的具体项目情况进行调整。如果问题依旧存在,建议详细记录错误日志,并在uni-app社区或官方GitHub仓库提交issue,寻求更专业的帮助。

回到顶部