Skip to content

ThingsBoard 移动应用详细讲解 ​

正文与配图来自原稿。可与专栏 移动端 Flutter App 使用 对照;本篇更偏完整踩坑记录。

1、安装 Android Studio ​

从 Android Studio 官网 下载安装,默认配置即可。

2、下载 Flutter SDK ​

对照 flutter_thingsboard_app 的 pubspec.yaml 要求的 Flutter/Dart 版本,到 Flutter Archive 下载,并把 bin 加入 PATH。

Flutter 版本

3、下载 flutter_thingsboard_app ​

版本矩阵见:Mobile getting started

版本对应

例如本地 TB 3.8.1 可拉 App 1.4.0:

bash
git clone -b release/1.4.0 https://github.com/thingsboard/flutter_thingsboard_app.git

克隆结果

4、Android Studio 打开工程 ​

安装 Flutter / Dart 插件,指向本机 Flutter SDK,配置模拟器:

插件

模拟器

若 pub get 提示 Dart SDK 过低(如要求 >=3.2.0 <4.0.0),升级 Flutter:

Dart 不匹配

5、版本不匹配与 JDK ​

常见错误:Unsupported class file major version 65 —— Gradle/JDK 与项目不匹配。

对照 Flutter ↔ Dart 与 pubspec.yaml:

版本表

pubspec

重要: 在 android/gradle.properties 指定 JDK,例如:

properties
org.gradle.java.home=D:\\path\\to\\jdk-11.0.12

gradle JDK

App 里 ThingsBoard 地址 不要用 localhost,用局域网 IP 或域名:

服务地址

开启代理后编译运行:

运行成功

6、登录后 version unknown ​

login 正常,/api/system/info 返回 {"version":"unknown","type":"CE"}:

unknown

源码中 SystemInfoController 依赖 BuildProperties;部分打包环境下注入失败,走 else 写成 unknown:

info 接口

BuildProperties

临时改法:把 infoObject.put("version", "unknown") 改成你的真实版本(如 "3.5.1"),重启 TB 后再登 App。

7、国际化 ​

  1. 覆盖/补全 lib/l10n 下 intl_zh.arb、intl_zh_CN.arb(原稿含完整中文词条,可按需合并)。
  2. 调整 l10n.yaml。
  3. 在 main.dart 启用生成的本地化。

l10n

新增键时在 zh / en arb 同步添加,页面使用 S.of(context).xxx。然后 flutter clean 再运行:

中文界面

8、release/1.6.0 注意点 ​

1.6 版本关系

Flutter 归档

plugin_wifi_connect 若用 git@github.com:... 拉取失败,改为 HTTPS:

yaml
plugin_wifi_connect:
  git:
    url: https://github.com/ybeshkarov/plugin_wifi_connect.git

依赖错误

改 URL

Android Studio 指向对应 Flutter,JDK 17,gradle.properties 同步 org.gradle.java.home:

Flutter 路径

JDK17

JDK17-2

gradle home

9、小结 ​

先对齐 TB ↔ App ↔ Flutter ↔ JDK,再处理地址与 system/info 版本;国际化与 git 依赖是后续常见坑。