You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何首次运行ThingsBoard Flutter/Dart移动端应用源码?

解决ThingsBoard Flutter移动端应用源码首次运行的问题

环境版本匹配核心原则

ThingsBoard Flutter项目的Gradle、Java、Flutter版本必须严格匹配:

  • Gradle 7.5.1 仅支持 Java 11~18,不兼容Java 21(主版本65)
  • Flutter版本需符合项目pubspec.yaml中的约束(通常为>=3.0.0)

1. 解决「不支持的类文件主版本65」错误

该错误源于Java 21与Gradle 7.5.1不兼容,修复步骤:

  • 确认项目Gradle版本:查看android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl,保持为gradle-7.5.1-all.zip
  • 配置Flutter使用兼容JDK:
    flutter config --jdk-dir="D:\jdk18"
    
  • Android Studio同步项目JDK:打开File → Project Structure → SDK Location,将JDK Location设置为JDK18路径

2. 解决flutter_slidable「hashValues未定义」错误

该错误是旧版flutter_slidable:3.1.1与新版Flutter SDK不兼容导致(Flutter新版本将hashValues替换为Object.hash),两种修复方式:

方式一:升级依赖(推荐)

修改项目pubspec.yaml中的依赖:

dependencies:
  flutter_slidable: ^3.2.0  # 替换为pub.dev上兼容当前Flutter的最新版本

执行命令更新依赖:

flutter pub get

方式二:临时修改缓存文件(不推荐,缓存更新后失效)

找到缓存中的notifications_old.dart文件(路径:C:/Users/18042/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_slidable-3.1.1/lib/src/notifications_old.dart),将第88行的:

int get hashCode => hashValues(tag, ratio);

替换为:

int get hashCode => Object.hash(tag, ratio);

3. 解决升级Gradle到8.5后的任务创建错误

Gradle 8.x与项目依赖的Flutter Gradle插件版本不兼容,不要随意升级Gradle版本,保持项目原有的7.5.1版本即可,避免Flutter内置任务定义冲突。


完整首次运行步骤

  1. 拉取ThingsBoard Flutter源码到本地
  2. 检查Flutter版本:执行flutter --version,确保版本符合pubspec.yaml中的flutter约束,不符则用flutter downgrade切换
  3. 按上述步骤配置JDK并修复依赖问题
  4. 连接Android设备或启动模拟器
  5. 执行flutter run启动应用

内容的提问来源于stack exchange,提问作者Karl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:55:55