真正能在Android真机上顺利跑起来还需要攻克两步
1、证书问题
使用 flutter doctor --android-licenses 发现报错。
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
最后参考这篇文章解决。
2、ADB环境解决
2.1 真机设备无弹窗提醒 需要处理adbkey的问题
rm -f ~/.android/adbkey*
adb keygen ~/.android/adbkey
adb kill-server
adb start-server
adb devices
2.2 adb命令版本问题
adb I 12-11 22:14:49 9326 851287 transport_mdns.cpp:237] Openscreen mdns discovery enabled dyld: lazy symbol binding failed: Symbol not found: _clock_gettime Referenced from: /Users/buyi/Library/Android/sdk/platform-tools/adb (which was built for Mac OS X 10.13) Expected in: /usr/lib/libSystem.B.dylib
仍然是因为缺少_clock_gettime函数导致ADB命令无法使用,参考flutter的经验教训,寻找降级版本的adb。但是降级的adb对于版本还是有有要求的 需要在1.0.39版本以上。
The ADB at "/Users/buyi/Library/Android/sdk/platform-tools/adb" is too old; please install version 1.0.39 or later.
拿着AndroidStudio中SDK Manager的仓库地址一点一点试验 果然有所收获
https://dl.google.com/android/repository/repository2-2.xml
https://developer.android.com/studio/releases/platform-tools#revisions
试成功的两个版本记录如下
28(r28.0.3,1.0.41)
29(r29.0.6,1.0.41)
最后终于可以看到Flutter 的Demo工程了。
Tips
看来我需要换个电脑了 学习前的好多功夫都浪费在折腾环境上了。。