HBuilder X uni-app热更新与APK打包实战指南
简介本资源是面向HBuilder X开发者的一站式热更新与安装部署支持包适用于使用HBuilder X开发uni-app或原生混合应用的前端工程师及跨平台移动应用学习者解决热更新资源打包、APK安装配置及项目运行环境快速复现等实际问题。压缩包共35个文件包含17张操作界面与流程说明PNG图、6个关键JS脚本含vconsole.min.js调试工具、4个CSS样式文件、4个JSON配置如manifest.json、2个HTML入口页及2个字体文件整体仅718KB轻量易集成。已有2915人学习下载资源结构清晰覆盖unpackage目录标准布局res、resources、img、js、css、fonts等并提供ApplicationWgt.zip热更包模板、index.html主入口及package-lock.json依赖锁定参考可直接用于本地调试、热更新测试与APK构建验证。1. HBuilder X 热更新资源与 APK 安装为什么“改完代码不重装”在真机调试中成了刚需很多刚从 Web 开发转到跨平台 App 开发的开发者第一次在 HBuilder X 里点下「运行到手机」时都会愣一下为什么改了一行console.log却要等两分钟——等编译、等签名、等安装、等重启更尴尬的是测试同学反馈一个按钮点击无响应你本地能复现但一打包发 APK 就又好了……这种「本地灵、真机哑、打包怪」的玄学现场本质是开发流和交付流没对齐。HBuilder X 的热更新Hot Update机制就是为解决这个断层而生的它不碰原生壳只替换uni-app编译后的static/和common/下的 JS/CSS/JSON 资源让逻辑变更秒级生效而 APK 安装包则是最终交付给测试或应用市场的可验证产物。二者不是二选一而是「开发快调 交付可信」的组合拳。本文面向已能用 HBuilder X 创建 uni-app 项目的开发者聚焦两个落地动作① 如何生成可被uni-app运行时识别的热更资源包.zip② 如何生成带正确签名、适配目标 Android 版本、能被真机稳定安装的 APK。不讲云打包原理不堆 CLI 参数只写我每天在某高校实验室带学生做模拟项目X时反复验证过的最小可行路径。2. 生成热更新资源包从uni-app项目到可部署的.zip热更新不是魔法它依赖uni-app运行时内置的资源加载器uni.getUpdateManager()去拉取并校验新资源。而这个「新资源」必须是 HBuilder X 按特定结构打包出的 ZIP 文件——它不能是dist/build下的原始文件也不能是手动压缩的整个static目录。关键在于结构必须扁平、路径必须精准、版本必须可验。2.1 确认项目配置manifest.json中的name与versionName是热更锚点热更新包的合法性由manifest.json中的name应用标识符和versionName当前版本号共同决定。运行时会比对本地versionName与服务端下发包中的versionName仅当后者更高时才触发更新。因此每次准备热更前务必先修改// manifest.json { name: com.example.simulationx, versionName: 1.2.3, versionCode: 123, description: 模拟项目X - 跨平台教学Demo }提示name必须是合法的反向域名格式如com.company.app且与你最终 APK 的包名完全一致versionName建议采用语义化版本x.y.z避免用1.0这类模糊值——否则热更策略会失效。2.2 在 HBuilder X 中导出热更资源 ZIP三步锁定结构HBuilder X 提供了专用导出入口而非用「发行 → 原生App-云打包」流程。操作路径如下右键点击项目根目录 → 选择「发行」→「原生App-本地打包」在弹出窗口中取消勾选「使用自定义基座」热更包不包含原生壳勾选「生成热更新资源包」点击「打包」。打包完成后HBuilder X 会在项目根目录下生成unpackage/res/update/文件夹内含update.zip即热更资源包解压后应为扁平结构update.zip ├── static/ │ ├── js/ │ │ └── app.js ← 新版业务逻辑 │ └── css/ │ └── app.css ├── common/ │ └── utils.js └── manifest.json ← 包含新 versionName 的副本逻辑说明该 ZIP 不含index.html、不包含nativeplugins/也不打包node_modules/。它只覆盖static/和common/下的资源且路径层级与dist/build/输出严格一致。这是uni-app运行时能精准fetch并replace的前提。2.3 验证 ZIP 内容用命令行快速检查结构合规性别依赖双击解压——有些压缩工具会自动加一层父目录导致热更失败。用终端快速验证# 进入项目根目录 cd /path/to/your/uniapp-project # 查看 update.zip 根目录结构macOS/Linux unzip -l unpackage/res/update/update.zip | head -20 # 或 Windows PowerShell需安装 7-Zip C:\Program Files\7-Zip\7z.exe l unpackage\res\update\update.zip | Select-Object -First 20预期输出关键行0 2024-05-20 14:22 static/js/app.js 0 2024-05-20 14:22 static/css/app.css 0 2024-05-20 14:22 common/utils.js 0 2024-05-20 14:22 manifest.json参数说明unzip -l列出文件表head -20只看前20行避免刷屏。重点确认① 所有路径以static/、common/或manifest.json开头②没有update/、project/等额外父目录③manifest.json存在且versionName已更新。若发现多了一层目录如update/static/js/app.js说明压缩方式错误需用 HBuilder X 内置导出功能重做。3. 生成可安装 APK签名、ABI 与 targetSdkVersion 的硬约束热更解决开发效率APK 解决交付闭环。但很多开发者卡在「生成的 APK 点击安装无反应」或「安装后闪退」——这几乎 100% 是签名、ABI 或targetSdkVersion不匹配导致的。HBuilder X 的「本地打包」流程本质是调用 Android SDK 的aapt2、d8、apksigner等工具链我们必须理解其输入约束。3.1 签名证书必须用jarsigner兼容的.keystore而非.jksHBuilder X 本地打包强制要求使用 Java KeyStore.keystore格式证书且密钥算法必须为RSA非EC。常见翻车点用 Android Studio 导出的.jks证书直接导入会报错Keystore was tampered with, or password was incorrect。正确生成方式终端执行# 生成 RSA 密钥对有效期 10000 天别名 mykey keytool -genkeypair -v -keystore myapp.keystore -alias mykey \ -keyalg RSA -keysize 2048 -validity 10000 \ -storepass 123456 -keypass 123456 \ -dname CNSimulatorX, OULab, OUniversity, LCity, STProvince, CCN逻辑说明-keyalg RSA是关键-keysize 2048符合 Google Play 强制要求-storepass与-keypass必须相同HBuilder X 当前版本限制-dname中的字段可任意但CN后建议用项目代号。生成后将myapp.keystore放入项目根目录并在manifest.json的android节点中配置android: { keystore: ./myapp.keystore, password: 123456, aliasname: mykey, aliaspwd: 123456 }3.2 ABI 选择真机 CPU 架构决定ndk.abiFilters的最小集合APK 安装失败常因 ABI 不匹配。例如你的测试机是骁龙 8 Gen2ARM64-v8a但打包时只勾选了armeabi-v7a则安装会提示「此应用与您的设备不兼容」。HBuilder X 中设置路径「发行」→「原生App-本地打包」→「Android 设置」在「CPU架构」中至少勾选你所有测试机的 ABI。常见组合华为/小米/OPPO 新机型arm64-v8a老款安卓平板/部分低端机armeabi-v7a模拟器如 Android Studio Emulatorx86_64或x86参数说明勾选多个 ABI 会增大 APK 体积约 3~5MB/ABI但能覆盖 99% 设备。切勿全选——mips、mips64已被主流厂商弃用选了反而可能触发构建失败。3.3targetSdkVersion必须 ≥ 33Android 13否则安装被系统拦截从 Android 13API 33起Google 强制要求 APK 声明targetSdkVersion ≥ 33否则在新系统上无法安装。HBuilder X 默认targetSdkVersion为 31需手动升级。修改位置打开manifest.json→android节点 → 添加targetSdkVersion字段android: { keystore: ./myapp.keystore, password: 123456, aliasname: mykey, aliaspwd: 123456, targetSdkVersion: 33 }注意升级后需同步检查权限声明。例如android.permission.READ_EXTERNAL_STORAGE在 API 33 已废弃应改用android.permission.READ_MEDIA_IMAGES。若未更新打包会成功但安装时提示「解析包时出现问题」。4. 热更与 APK 的协同验证三步确认「改完就生效」生成资源包和 APK 只是起点真正落地要看「改一行 JS → 真机刷新 → 效果可见」是否闭环。这里给出一套零依赖、纯 HBuilder X 真机的验证流程。4.1 本地起 HTTP 服务用 Python 快速搭一个静态资源服务器热更资源必须通过 HTTP(S) URL 下发不能用file://。最简方案是用 Python 内置模块# 进入热更资源所在目录HBuilder X 自动生成的路径 cd unpackage/res/update/ # Python 3.x 启动服务端口 8000 python3 -m http.server 8000 # 或 Python 2.x已不推荐仅兼容旧环境 python -m SimpleHTTPServer 8000服务启动后访问http://localhost:8000/update.zip应能直接下载 ZIP 文件。记下本机 IP如192.168.1.100后续在真机上用http://192.168.1.100:8000/update.zip访问。逻辑说明http.server是 Python 标准库无需额外安装端口选8000是因80常被占用8000在局域网内极少冲突确保电脑与真机在同一 WiFi 下防火墙放行该端口。4.2 在main.js中注入热更逻辑最小可用代码块uni-app的热更能力需显式调用。在main.js最底部new Vue(...)之前插入// main.js function initUpdate() { const updateManager uni.getUpdateManager() // 监听更新状态 updateManager.onCheckForUpdate(res { console.log(检查更新结果:, res.hasUpdate) }) updateManager.onUpdateReady(() { uni.showModal({ title: 更新提示, content: 新版本已准备好是否重启应用, success: res { if (res.confirm) { updateManager.applyUpdate() // 立即生效 } } }) }) updateManager.onUpdateFailed(() { uni.showToast({ title: 更新失败请重试, icon: none }) }) } // 页面加载后初始化 uni.addInterceptor(onLaunch, { invoke() { initUpdate() } })参数说明onCheckForUpdate用于主动触发检查如用户点击「检查更新」按钮onUpdateReady是核心回调表示 ZIP 已下载并校验通过applyUpdate()会立即重启 WebView无需杀进程。此代码不依赖任何插件HBuilder X 2.9.15 均支持。4.3 真机验证全流程从安装到热更生效的 5 分钟实操安装 APK用 USB 连接真机 → 在 HBuilder X 中「运行到手机」→ 选择「安装 APK」→ 等待完成首次启动打开 App确认控制台输出检查更新结果: false因无更新包修改代码在pages/index/index.vue的onLoad中加一行console.log(v1.2.3-hot)生成热更包按 2.2 节操作得到新update.zip启动服务cd unpackage/res/update python3 -m http.server 8000触发更新在真机 App 中进入任意页面然后杀掉后台进程 → 重新打开 App → 观察控制台是否输出v1.2.3-hot。关键观察点若控制台出现v1.2.3-hot说明热更资源已成功加载并执行若仍为旧日志检查update.zip中static/js/app.js是否包含新日志语句用unzip -p update.zip static/js/app.js | grep v1.2.3快速验证。5. 避坑指南热更与 APK 打包中 5 个血泪经验换来的高频问题热更和 APK 打包看似简单但每个环节都有隐蔽的「断点」。以下是我在带某高校实验室学生做模拟项目X时累计记录的 5 个最高频、最耗时的问题按「现象 → 原因 → 解决」结构整理每一条都对应真实翻车现场。5.1 现象热更 ZIP 下载成功但onUpdateReady死活不触发原因ZIP 包内manifest.json的versionName未更新或与当前 App 的versionName相同/更低。uni-app运行时严格比较字符串1.2.3与1.2.03被视为不同版本但不会自动升序。解决用文本编辑器打开 ZIP 内的manifest.json确认versionName字段值严格大于当前 App 的versionName如当前是1.2.2则新包必须是1.2.3或1.3.0不能是1.2.2.1。5.2 现象APK 安装时报错「Parse error: There is no attribute android:exported」原因targetSdkVersion 31时AndroidManifest.xml 中的activity默认exportedtrue但升级到 31 后系统强制要求显式声明android:exported属性。HBuilder X 旧版本模板未自动补全。解决在manifest.json的android节点中添加uses-feature和application配置android: { targetSdkVersion: 33, uses-feature: [ { name: android.hardware.camera, required: false } ], application: { exported: true } }5.3 现象热更后页面白屏控制台报Uncaught SyntaxError: Unexpected token 原因热更 ZIP 中的static/js/app.js被错误压缩如用 Webpack 的TerserPlugin二次压缩导致 JS 语法破坏或 ZIP 解压时编码错误Windows 默认 GBKLinux/macOS UTF-8。解决禁用uni-app的 JS 压缩。在vue.config.js中添加module.exports { configureWebpack: { optimization: { minimize: false // 关闭 JS 压缩 } } }5.4 现象APK 安装成功但启动后立即闪退Logcat 显示java.lang.UnsatisfiedLinkError: dlopen failed: library libuv.so not found原因HBuilder X 本地打包时若项目中引用了uni-app官方未预置的 Native 插件如某些第三方地图 SDK而该插件依赖特定.so库但未在nativeplugins/中正确配置 ABI。解决检查nativeplugins/目录结构。正确路径应为nativeplugins/com.plugin.name/android/libs/arm64-v8a/libuv.so。若缺失arm64-v8a子目录需从插件文档下载对应 ABI 的.so文件并放入。5.5 现象热更资源从 HTTPS 服务器下载失败报net::ERR_CERT_AUTHORITY_INVALID原因测试用的 HTTPS 证书是自签名或 Lets Encrypt 的 staging 证书Android 系统默认不信任。解决开发阶段改用 HTTP如 4.1 节的 Python 服务生产环境必须使用受信 CA 签发的 HTTPS 证书。切勿在manifest.json中添加android:usesCleartextTraffictrue—— 这违反 Google Play 政策且不安全。6. 进阶技巧用adb命令行精准控制热更生命周期与 APK 安装验证当 UI 界面无法满足深度调试需求时adb是工程师的后悔药。它能绕过 HBuilder X 的封装直连真机系统查看热更日志、强制触发更新、甚至卸载重装 APK。以下是我日常用得最熟的 4 个命令全部经过某高校实验室模拟项目X 的千次验证。6.1 查看热更详细日志过滤uni关键字定位问题根源HBuilder X 控制台的日志太笼统而adb logcat能看到uni-app运行时底层行为# 清空日志缓冲区 adb logcat -c # 实时过滤 uni 相关日志含网络请求、ZIP 解压、JS 执行 adb logcat | grep -i uni\|update\|download\|apply # 或更精准只看 WARN 和 ERROR 级别 adb logcat *:S UpdateManager:D UniCore:W System.err:W技巧说明*:S表示静默所有标签UpdateManager:D表示只显示UpdateManager标签的 Debug 级日志UniCore:W显示UniCore标签的 Warning 级日志。这样能瞬间定位到Failed to download update.zip: timeout这类关键错误。6.2 强制触发热更检查跳过onLaunch自动检查手动验证逻辑有时需要在 App 运行中动态测试热更而非重启触发。此时可在 HBuilder X 的「调试」→「控制台」中执行// 在真机调试控制台中粘贴执行 const updateManager uni.getUpdateManager() updateManager.checkForUpdate() // 主动发起检查注意此命令需在 App 已启动且uni.getUpdateManager()可用后执行。若报错undefined说明uni-app运行时未初始化需先确保main.js中已调用initUpdate()。6.3 APK 安装验证用adb shell pm dump查看包信息与权限安装后不确定 APK 是否真的用了你配置的targetSdkVersion或keystore用pm dump直接读取系统注册信息# 查看已安装包的完整信息替换 com.example.simulationx 为你的 name adb shell pm dump com.example.simulationx | grep -E versionName|targetSdkVersion|signer # 输出示例 # versionName1.2.3 # targetSdkVersion33 # signer30820250308201B8A003020102020900B6F...参数说明signer字段是证书指纹的 ASN.1 编码可与你keystore的指纹比对用keytool -list -v -keystore myapp.keystore -alias mykey查看。若targetSdkVersion显示为31说明manifest.json未生效需检查 JSON 格式或 HBuilder X 缓存。6.4 批量清理与重装一键卸载 安装 启动省去手动操作开发迭代频繁时重复点「卸载」「安装」「打开」太慢。写个 Bash 脚本macOS/Linux或批处理Windows#!/bin/bash # install-and-run.sh PACKAGE_NAMEcom.example.simulationx APK_PATH./unpackage/dist/build/getting-started.apk # 卸载旧包忽略不存在错误 adb uninstall $PACKAGE_NAME 2/dev/null # 安装新 APK adb install -r $APK_PATH # 启动主 ActivityActivity 名从 adb shell pm dump 获取 adb shell am start -n $PACKAGE_NAME/.MainActivity血泪经验-r参数表示「覆盖安装」避免因版本号未变导致安装失败am start后的 Activity 名必须准确否则启动失败。首次使用前先用adb shell pm dump $PACKAGE_NAME | grep Activity确认主 Activity 名。最后说一句热更不是银弹它只解决 JS/CSS/JSON 层的逻辑迭代涉及原生能力如蓝牙、NFC、UI 组件变更如新增uni-popup、或manifest.json根配置调整仍需重新打包 APK。我带学生做模拟项目X 时定下铁律小修小补走热更大改大动必重装。把精力留给业务而不是猜构建系统在想什么。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

菲涅尔透镜与红外传感器:原理、选型及安装调试指南

菲涅尔透镜与红外传感器:原理、选型及安装调试指南

简介:菲涅尔透镜在红外传感与光学系统中应用广泛。这份资料以PDF论文形式,系统讲解了菲涅尔透镜的设计原理、结构特点及其在红外传感器中的核心作用,并针对长方形、半球形、水平薄片形等不同类型透镜的适用场景与选型要点进行了说明&#xff…

2026/10/14 18:06:33 阅读更多 →
基于加权融合的多信号模型选择算法:semantic-router Hybrid Selection 深度解析

基于加权融合的多信号模型选择算法:semantic-router Hybrid Selection 深度解析

后端API网关模型推理服务AI Agent 【免费下载链接】semantic-router An open, programmable decision layer for models and compute. 项目地址: https://gitcode.com/gh_mirrors/sem/semantic-router 点击查看 免费下载 在模型路由系统中,单一选择方法…

2026/10/14 18:06:33 阅读更多 →
QXDM与终端CN0显示不一致?GNSS定位测试排查全解析

QXDM与终端CN0显示不一致?GNSS定位测试排查全解析

1. 从一个让人抓狂的现场说起 做终端定位测试的朋友,大概率都遇到过这种让人怀疑人生的场景:你手里拿着测试机,在室外开阔环境下跑GPS测试,QXDM里抓出来的卫星载噪比(CN0)数值漂亮得很,好几颗星…

2026/10/14 18:06:33 阅读更多 →

最新新闻

React Native应用难以破解?morphe-patches的Hermes字节码十六进制补丁与哈希修复技巧

React Native应用难以破解?morphe-patches的Hermes字节码十六进制补丁与哈希修复技巧

【免费下载链接】morphe-patches 🍃 Human-made patches for Morphe 项目地址: https://gitcode.com/gh_mirrors/mor/morphe-patches 点击查看 免费下载 morphe-patches 是一个为 Android 补丁工具 Morphe 提供社区补丁的开源仓库,其中最硬核…

2026/10/14 18:47:02 阅读更多 →
短链码生成:MurmurHash 与 62 进制转换

短链码生成:MurmurHash 与 62 进制转换

Guava 的 MurmurHash 测试与封装 简介:Guava 自带 MurmurHash 算法,直接调用生成 32 位哈希值,再封装到工具类 背景 短链码用 MurmurHash 生成,Guava、Jedis 等框架已经集成了这个算法,不用从头开发会用即可&#xf…

2026/10/14 18:47:02 阅读更多 →
绿深LD3320离线语音识别方案:从资料包到可运行工程

绿深LD3320离线语音识别方案:从资料包到可运行工程

简介:绿深LD3320语音识别模块全套开发资料,面向单片机开发者、嵌入式初学者及需要为项目加入语音交互功能的工程师。资源围绕LD3320芯片的语音识别与串口通信能力展开,帮助读者摆脱物理按键依赖,快速实现语音指令控制。压缩包共18…

2026/10/14 18:47:02 阅读更多 →
微信小程序实战案例:计时器,理解 JS 定时器与 CSS 视觉叠加

微信小程序实战案例:计时器,理解 JS 定时器与 CSS 视觉叠加

微信小程序实战案例:计时器,理解 JS 定时器与 CSS 视觉叠加摘要:本篇基于案例 3.5 计时器,讲解小程序中一次性定时器、循环定时器的实际开发,结合页面状态控制、事件绑定、CSS 伪元素扩展效果,梳理开发思路…

2026/10/14 18:47:02 阅读更多 →
全国县级行政边界shp使用指南:坐标系、空间连接与区域统计

全国县级行政边界shp使用指南:坐标系、空间连接与区域统计

简介:这份全国省、县界线shp格式矢量图面向地理信息系统从业者、地图可视化开发者及需要行政区划底图的学生与研究人员,解决全国范围内精确到县级的行政边界数据获取问题,可用于专题制图、空间分析、区域统计与GIS教学等场景。资源以rar压缩包…

2026/10/14 18:47:02 阅读更多 →
纯C语言实现LSTM:从张量设计到嵌入式部署的完整指南

纯C语言实现LSTM:从张量设计到嵌入式部署的完整指南

简介:这是一份面向C语言开发者与神经网络初学者的LSTM递归神经网络实现资源,旨在帮助读者在资源受限的环境中理解并实践循环网络。项目参考Andrej Karpathy的char-rnn思路,但改用C语言重写,可用于文本生成等长期依赖建模任务&…

2026/10/14 18:46:02 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →