Tauri Android 开发踩坑实录:从 Gradle 版本冲突到离线构建成功

关键词:Tauri、Android、Gradle、跨平台、离线构建、Rust + Web

最近在尝试使用 Tauri 开发一款跨平台的量房工具,目标是同时支持桌面端(Windows/macOS/Linux)和移动端(Android)。在 Windows 上开发一切顺利,但在运行 pnpm tauri android dev 时,接连遇到两个典型问题:

  1. Unsupported class file major version 66
  2. Minimum supported Gradle version is 8.13. Current version is 8.7
  3. Gradle 下载超时(网络受限)

经过多次调试,最终成功在 Android 模拟器上运行应用。现将完整解决过程记录如下,希望能帮到同样踩坑的朋友。


🔧 问题一:Java 版本与 Gradle 不兼容

❌ 错误信息

复制代码
Unsupported class file major version 66

💡 原因分析

  • major version 66 对应 Java 22 编译的 class 文件;
  • 但构建时实际使用的 JVM 版本较低(如 JDK 21),无法加载高版本 class;
  • 虽然设置了 JAVA_HOME,但 Tauri 调用 Gradle 时可能受 PATH 中其他 Java 干扰。

✅ 解决方案

  • 统一使用 JDK 21(Android 官方推荐版本);
  • 设置 JAVA_HOME=D:\Android\Java\jdk-21.0.3
  • 清理缓存:删除 src-tauri/targetgen/android/.gradle
  • 重启终端确保环境变量生效。

📌 建议 :Tauri + Android 目前对 JDK 22 支持不完善,优先使用 JDK 17 或 21


🔧 问题二:Gradle 版本过低

❌ 错误信息

复制代码
Minimum supported Gradle version is 8.13. Current version is 8.7.

💡 原因分析

  • Tauri 新版默认使用较新的 Android Gradle Plugin (AGP)
  • AGP 8.5+ 要求 Gradle ≥ 8.13,但项目生成的 Wrapper 仍是 8.7。

✅ 解决方案

修改文件:

复制代码
src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties

将:

properties 复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip

更新为:

properties 复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip

✅ Gradle 8.14.3 是当前与 AGP 兼容的最新稳定版。


🌐 问题三:Gradle 下载超时(网络问题)

❌ 错误信息

复制代码
java.net.SocketTimeoutException: Connect timed out

✅ 解决方案:使用本地 ZIP 文件(离线构建)

  1. 从浏览器手动下载 gradle-8.14.3-bin.zip
  2. 修改 gradle-wrapper.properties 中的 distributionUrl 为本地路径:
properties 复制代码
distributionUrl=file:///D:/Android/Gradle/gradle-8.14.3-bin.zip

⚠️ 注意:

  • 使用 file:/// 前缀;
  • 路径用正斜杠 /
  • 文件必须是官方 ZIP 包(未解压)。
  1. 重新运行 pnpm tauri android dev,构建成功!

🎉 最终成果

  • 在 Windows 上开发 Tauri 应用;
  • 成功在 Android 模拟器(x86_64)上运行;
  • 前端通过局域网 IP(如 192.168.0.193:1420)与 Rust 后端通信;
  • 无需编写任何 Java/Kotlin 代码,纯 Web + Rust 实现。

💡 经验总结

项目 建议
JDK 版本 使用 JDK 21,避免 JDK 22 的兼容性问题
Gradle 版本 保持与 AGP 兼容(当前推荐 8.13--8.14)
网络受限 file:// 指向本地 ZIP 实现离线构建
跨平台开发 Tauri 真正实现"一套代码,多端运行",极大降低开发成本

相关推荐
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
段一凡-华北理工大学11 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
爱笑鱼14 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
爱笑鱼15 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
壮哥_icon15 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
大卫小东(Sheldon)16 小时前
小鹤音形词典:一个用 Rust 写的离线编码查询桌面工具
ai·rust
用户693717500138417 小时前
Claude Code终端日志Token占用实测:一个过滤器砍掉60%-90%
android·前端·后端
蝉蜕日记17 小时前
AccumuPDF高级版 v2.57 | 视图文转换PDF,合并分割压缩
android·智能手机·pdf·生活·软件需求
就业发动机17 小时前
我用 Tauri 做了一个约 1.5 MB 的开源屏幕标注工具:MarkerOn
vue.js·rust
吐了啊取名字太难17 小时前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程