如何首次运行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内置任务定义冲突。
完整首次运行步骤
- 拉取ThingsBoard Flutter源码到本地
- 检查Flutter版本:执行
flutter --version,确保版本符合pubspec.yaml中的flutter约束,不符则用flutter downgrade切换 - 按上述步骤配置JDK并修复依赖问题
- 连接Android设备或启动模拟器
- 执行
flutter run启动应用
内容的提问来源于stack exchange,提问作者Karl
相关产品推荐
相关产品推荐

