• 游客,欢迎来到米坛社区。
    米坛社区是大型中文智能穿戴设备交流社区,在这里交流你的极客思想,共同建造我们的智能世界
    为了更加方便的获取支持与帮助,请加入米坛社区官方QQ频道

米表S1P/S3 教程 【Aiot-IDE踩坑记录】nt小米工程师,IDE越更越纱必

Searchstars

LV3
普通成员
UID
152789
2022-11-05
37
188
/home/searchstars
最开始,本人打算使用WSL2搭配官方提供的Ubuntu 22.04安装Aiot-IDE进行快应用开发,结果发现无法在aiot-ide中正常启动模拟器——当然这不是我们要讨论的重点,我呢也就直接开始最省事的办法,下载Ubuntu 20.04的完整iso镜像,然后安装在Hyper-V虚拟机中。

接下来的几天,这一切运作的都很好,Aiot-IDE能正常使用,模拟器也能正常开启。只不过IDE一直在给我弹插件更新——由于当时并没有需要更新的需求,也就没搭理了,直到今天,它自动给我更新了插件到最新版本,不出意外,“到祸了”。

在我打开Aiot-IDE时,右侧突然弹出一个我从来没见过的窗口,提示我环境没配置好,我当时还寻思着,是不是Ubuntu自动更新导致的问题,让它自动处理一下就好了,于是就点了按钮让它自动处理——最后也算是“处理好了”,我寻思着byd还挺好用,打开ux文件,哎哟我去,怎么还带ux preview的,这可牛逼大了,总算是“遥遥领先”了隔壁BlueOS的开发插件好吧。然后,我准备开始启动模拟器调试我的应用,小米的第一坨大的就直接拉我头上了——这byd东西提示我找不到模拟器!好吧,更新版本了,改动有点大,可以理解,我重新创建模拟器就好了吧......我去,我皮肤捏?我的s1 pro皮肤捏?s1 pro出太久了不支持了皮肤删了,我可以理解,但为什么不给s3出个皮肤?唉算了,用8pro的皮肤凑合吧。启动模拟器的过程还挺新奇捏,右侧开个窗口显示画面,不用再忍受之前的构式AVD边框了,好评!

就这点了吗?绝对不可能,更刺激的还在后面——模拟器启动成功后,我的应用代码也开始运行了,然后迎面而来一个报错:"No such file or directory",这个报错是来自"storage.get"函数的,在之前,我从来没有遇到过这个问题,storage的逻辑也不允许它出现这个问题。好吧,或许是API变了呢?因为之前我检测storage key是否存在就是靠判定get success的data是不是空字符串(官方文档中明确提到key不存在返回default,而default默认为空字符串),现在可能变成直接fail了吧。我就往里加了个fail的回调,寻思着console.log一下fail data,结果data是空的,他妈连code也是空的,真是我吗糙了个大比,乐开花了。我寻思也就算了吧,不追究了,直接把后续代码逻辑放里面吧——运行模拟器,报错,这次还是"No such file or directory",但有所不同的是,这次的报错来自"storage.set"函数,因为我后续的逻辑涉及到了这个函数——但是这绝对说不过去,你说storage.get获取不到key报错No such file or directory还好说,你一个本来就有用来添加新key value的用途的storage.set报这个错,一个系统的API连自己的API文档都不遵循了,你说好笑吗?乐开花了属于是。我直接不敢用了,连这么个基础的数据功能都出问题,别的功能能出什么问题,那想象空间可太大了。

Only Xiaomi Can Do. 从可用到不可用只需一个更新

最后把aiot-ide-banner从1.2.3降级到1.2.0解决。望小米之后在推送插件更新时先自行检查可用性,此文留给后人参考。
 

Yakuake

LV0
普通成员
UID
185343
2023-01-14
28
11
www.projcora.club
最开始,本人打算使用WSL2搭配官方提供的Ubuntu 22.04安装Aiot-IDE进行快应用开发,结果发现无法在aiot-ide中正常启动模拟器——当然这不是我们要讨论的重点,我呢也就直接开始最省事的办法,下载Ubuntu 20.04的完整iso镜像,然后安装在Hyper-V虚拟机中。

接下来的几天,这一切运作的都很好,Aiot-IDE能正常使用,模拟器也能正常开启。只不过IDE一直在给我弹插件更新——由于当时并没有需要更新的需求,也就没搭理了,直到今天,它自动给我更新了插件到最新版本,不出意外,“到祸了”。

在我打开Aiot-IDE时,右侧突然弹出一个我从来没见过的窗口,提示我环境没配置好,我当时还寻思着,是不是Ubuntu自动更新导致的问题,让它自动处理一下就好了,于是就点了按钮让它自动处理——最后也算是“处理好了”,我寻思着byd还挺好用,打开ux文件,哎哟我去,怎么还带ux preview的,这可牛逼大了,总算是“遥遥领先”了隔壁BlueOS的开发插件好吧。然后,我准备开始启动模拟器调试我的应用,小米的第一坨大的就直接拉我头上了——这byd东西提示我找不到模拟器!好吧,更新版本了,改动有点大,可以理解,我重新创建模拟器就好了吧......我去,我皮肤捏?我的s1 pro皮肤捏?s1 pro出太久了不支持了皮肤删了,我可以理解,但为什么不给s3出个皮肤?唉算了,用8pro的皮肤凑合吧。启动模拟器的过程还挺新奇捏,右侧开个窗口显示画面,不用再忍受之前的构式AVD边框了,好评!

就这点了吗?绝对不可能,更刺激的还在后面——模拟器启动成功后,我的应用代码也开始运行了,然后迎面而来一个报错:"No such file or directory",这个报错是来自"storage.get"函数的,在之前,我从来没有遇到过这个问题,storage的逻辑也不允许它出现这个问题。好吧,或许是API变了呢?因为之前我检测storage key是否存在就是靠判定get success的data是不是空字符串(官方文档中明确提到key不存在返回default,而default默认为空字符串),现在可能变成直接fail了吧。我就往里加了个fail的回调,寻思着console.log一下fail data,结果data是空的,他妈连code也是空的,真是我吗糙了个大比,乐开花了。我寻思也就算了吧,不追究了,直接把后续代码逻辑放里面吧——运行模拟器,报错,这次还是"No such file or directory",但有所不同的是,这次的报错来自"storage.set"函数,因为我后续的逻辑涉及到了这个函数——但是这绝对说不过去,你说storage.get获取不到key报错No such file or directory还好说,你一个本来就有用来添加新key value的用途的storage.set报这个错,一个系统的API连自己的API文档都不遵循了,你说好笑吗?乐开花了属于是。我直接不敢用了,连这么个基础的数据功能都出问题,别的功能能出什么问题,那想象空间可太大了。

Only Xiaomi Can Do. 从可用到不可用只需一个更新

最后把aiot-ide-banner从1.2.3降级到1.2.0解决。望小米之后在推送插件更新时先自行检查可用性,此文留给后人参考。
其实最新版 aiot-ide-banner 和project插件都有一定问题.
 

Yakuake

LV0
普通成员
UID
185343
2023-01-14
28
11
www.projcora.club
对了提一嘴 WSL不管什么系统都没法启动模拟器, 但是我尝试的实机Archlinux却可以运行(
所以我今晚上准备更新的DevelaOS也没法更新了...tnnd
 

Yakuake

LV0
普通成员
UID
185343
2023-01-14
28
11
www.projcora.club
还有一个我需要吐槽的.
WSL创建项目我遇到问题有一个是创建项目时pkexec没法用
我发现把插件更新到最新版又能创建了
然后调试的时候又报错了没法解决
然后把插件降级又能正常调试了
离谱啊离谱
 

Searchstars

LV3
普通成员
UID
152789
2022-11-05
37
188
/home/searchstars
对了提一嘴 WSL不管什么系统都没法启动模拟器, 但是我尝试的实机Archlinux却可以运行(
所以我今晚上准备更新的DevelaOS也没法更新了...tnnd
wsl在开启i386支持并安装依赖包后直接运行node_modules/@aiot-toolkit/velasim下的nuttx可执行文件是可以勉强打开模拟器的,但一堆功能用不了,比如调试,联网也没有
 

Yakuake

LV0
普通成员
UID
185343
2023-01-14
28
11
www.projcora.club
wsl在开启i386支持并安装依赖包后直接运行node_modules/@aiot-toolkit/velasim下的nuttx可执行文件是可以勉强打开模拟器的,但一堆功能用不了,比如调试,联网也没有
安装了 Debian没法用, 报错, 好像是内存有关的
Ubuntu是可以的
ArchLinux实机测试也能用
 

Searchstars

LV3
普通成员
UID
152789
2022-11-05
37
188
/home/searchstars
发现了一些东西
Vela现在实装只有API Level 3并且是Watch S3独享
然而事实上Vela的API Level 4似乎已经准备好了,但是官方也不打算在现在下放给开发者(估计是等今年新表发布)
按照惯例,S1P从API Level 1更新到了2(例如qr code这些组件都是level2新加的),那S3应该也享有从API Level 3更新到API Level 4的权利(希望吧)
Aiot-IDE事实上版本已经跑到了1.4.0了(依照aiot-ide-banner的changelog来看),但文档(https://iot.mi.com/vela/quickapp/zh/content/guide/start/use-ide.html)里提供的版本是1.0.0,编译日期在2022年底,严重误导新人。最新版本的Aiot-IDE似乎从未开放给公众下载,aiot-ide-banner里提供的链接也只是到1.2.0(2023年底编译)并未提供到1.3.0
并且,在aiot-ide-banner的最新版本的changelog(https://marketplace.visualstudio.com/items/donglin.aiot-ide-banner/changelog)里写了这么一句话:“限制1.4.0之前的banner插件只能在aiot-ide 1.4.0之前的版本上使用” 这个1.4.0指的是什么?插件版本还是ide版本?
这是要玩什么?我测,这是要玩大的?
 

*这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责