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 真正实现"一套代码,多端运行",极大降低开发成本

相关推荐
二流小码农1 小时前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
鹏程十八少2 小时前
4.Android 30分钟手写一个简单版shadow, 从零理解shadow插件化零反射插件化原理
android·前端·面试
Kapaseker2 小时前
一杯美式搞定 Kotlin 空安全
android·kotlin
三少爷的鞋2 小时前
Android 协程时代,Handler 应该退休了吗?
android
火柴就是我16 小时前
让我们实现一个更好看的内部阴影按钮
android·flutter
蚂蚁背大象1 天前
Rust 所有权系统是为了解决什么问题
后端·rust
布列瑟农的星空1 天前
前端都能看懂的rust入门教程(五)—— 所有权
rust
砖厂小工1 天前
用 GLM + OpenClaw 打造你的 AI PR Review Agent — 让龙虾帮你审代码
android·github
张拭心1 天前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
张拭心1 天前
Android 17 来了!新特性介绍与适配建议
android·前端