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

相关推荐
fatiaozhang952715 小时前
晶晨S905X芯片_通刷固件包_ATV 安卓9.0_IPV6_中文线刷固件包
android·电视盒子·刷机固件·机顶盒刷机固件
肖祥16 小时前
Rust入门
rust
下位子16 小时前
『OpenGL学习滤镜相机』- Day5: 纹理变换与矩阵操作
android·opengl
林太白17 小时前
rust16-职位管理模块
后端·rust
撩得Android一次心动17 小时前
Android 四大组件——BroadcastReceiver(广播)
android·java·android 四大组件
努力学习的小廉17 小时前
初识MYSQL —— 复合查询
android·数据库·mysql
国服第二切图仔17 小时前
Rust开发实战之简单游戏开发(piston游戏引擎)
开发语言·rust·游戏引擎
ii_best17 小时前
安卓/IOS工具开发基础教程:按键精灵一个简单的文字识别游戏验证
android·开发语言·游戏·ios·编辑器
史不了1 天前
静态交叉编译rust程序
开发语言·后端·rust
Johnny.Cheung1 天前
非常好的Rust自动管理内存的例子
rust·内存管理·析构函数