鸿蒙那些令人无语的Bug
- 你甚至没法正常连接到电脑使用USB调试,仅仅可以传输文件。许多用户(包括我)的设备都不能正常弹出授权USB调试的选项。
- 使用损坏的USB存储设备或者其他特殊USB设备(比如鸿蒙不支持的磁盘分区格式exFAT的即将被填满的64U盘)可能导致你的手机在拔掉该设备或者插上该设备后的几秒自动重启。
HarmonyOS的应用开发体验让我感觉非常糟糕,因为仅仅是为了你能够调试你的应用,你得去做一大堆事,甚至现在除了受邀请的开发者,其他个人开发者都无法进行任何发布应用的相关操作。你可能要和我一样面临写了个Hell world却卡死在生成有效的应用上。
我不明白为什么我私下调试鸿蒙应用还要向华为申请一大堆东西。[无语]
详情参考:
手动方式调试HarmonyOS应用
我现在对鸿蒙的态度发生了巨大转变,如果你想和和美美的开发一个鸿蒙应用,那对不起建议你早日打消这个想法。恐怕写一个Android应用去调试比这个简单多了。
1.偷换概念(Equivocation) :他们利用词、句上可能出现的歧义来歪曲论据,进行诡辩。A:“这个大米不好,煮的稀饭不够黏。”B:“502黏,你怎么不去挖一勺?
2.红鲱鱼谬误(Red Herring Fallacy):即转移话题,提出不相干的话题来转移原本的讨论焦点。A:“昨天领养了一只流浪狗。”B:“这么热心肠怎么没见你去福利院照顾老人?”
3.稻草人谬误(Straw Person) :故意曲解对方的原意,使其容易受到攻击。A:“谈了恋爱的人应该与其他异性保持一定的距离。”B:“ 那还不许我跟别人讲话了啊?”
4.Renshen攻击(Ad Hominem) :他们避开事件本身的因果联系不谈,为回避自己的逻辑弱点,选择通过批评或诋毁对方的人格和品质来反驳某项论证;“班上那么多人,他不欺负别人就只欺负你?肯定是因为你做了什么坏事!”
5.滑坡谬误(Slippery Slope) : 使用一连串连续的因果关系,却又夸大每个环节之间因果关系的强度,进而得到不合理的结论。“你现在不好好学习,就上不了好高中,上不了好大学,找不到工作你就只能扫大街,你难道想一辈子扫大街吗?”
6.假两难悖论(Pseudo-Dilemma) :在具有多重可能造成的原因时,他们的论证却仅预设两种情况,形成一个假的“两难悖论”。“不公开发表声明,肯定是心虚了吧!”“不为你买包的男人,一定不爱你。”
7.从众谬误(Ad Populum Fallacy) :将一个观点的受欢迎程度看作其真实性或价值的高低。“如果它不是真的,那怎么朋友圈的人都在转(发) ?“微博上都这么说,肯定是实锤啊!”
8.诉诸主观情感谬误(Appeal to Emotion) :他们预设“动机合情何理的行为是恰当的”,即所谓的“圣母婊”。“你现在是这么说,但是在那种情况下如果你是他,你也会这么做的。”“你这么有钱,在同学有困难的时候为什么不捐款?”
9.轻率概括(Hasty Generalization) :仅通过观察一个或一小部分群体,就对一整个群体做出概括。“只有我一个人觉得不好笑吗?不知道发这个有什么意义!”“你看我95后的助理都月薪5万了,你怎么就不相信努力是成功之母呢?”
10.错误的类比(Faulty Analogy) :预设在某些部分相似的事物在另一些方面也会相似。“大家都是一个老师教出来的,怎么人家能考满分,就你不行?”
原文链接(作者在评论区表示允许转载)
感谢那几位大佬指点,给他们发红包感谢了。(其实就几毛钱,但是我QQ也就剩下这么多...... )
str = '[CQ:at,qq=1052757154,text=@筱可儿]';
qq = str.match(/qq=(\d+)/);
console.log(qq)
输出:
[
'qq=1052757154',
'1052757154',
index: 7,
input: '[CQ:at,qq=1052757154,text=@筱可儿]',
groups: undefined
]
QQUID=qq[1]
str = '[CQ:at,qq=1052757154,text=@筱可儿]';
qq=str.match(/(?<=qq=)\d+|(?<=text=@).+(?=\])|(?<=\]).*/g);
console.log(qq)
输出:
[ '1052757154', '筱可儿', '' ]
QQUID=qq[0],nickname=qq[1]
为什么用到这个?因为我想要得到形如text 123456这串文字中的123456部分,延伸一下用途,这可以用来处理qbot接收到的指定格式命令的消息,得到命令标识后的命令部分。
split()把一个字符串分割成字符串数组:
标准语法:string.split(separator,limit)
limit:可选。 该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
var message = "xiao 12345"
var array = message.split(" ") //此处使用一个空格作为分隔符即“separato”,如果使用空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
console.log(array) //直接输出数组array
console.log(array[0]) //输出数组array的第一个元素
console.log(array[1]) //输出数组array的第二个元素
-----------------输出结果--------------------
[ 'xiao', '12345' ]
xiao
12345
如果你在visual sutdio code中执行出现报错(没有可用的调试程序,无法发送“variables”),可以安装Code Runner 使用组合键Ctrl Alt N直接运行,也可以在launch.json文件内program下面加一行"console": "integratedTerminal"
,此语句设置 启动调试目标的位置为integratedTerminal即 VS Code 的集成终端。
说明:这个视频是我发现bug后第一时间尝试对bug进行复现,但是只成功复现第一部分。
下面是我第一次碰到这个bug情形的文字描述。
在经过和视频中相同的打开ES文件管理器加载片刻后直接拔下U盘,otg转接头指示灯灭了,然后我放下手机随后发现手机屏幕已经亮了华为logo开始自动重启。
重启后系统恢复正常,随后的第一次bug复现仅成功复现第一条。
U盘USB3.0 64G,主控应该是慧荣的具体型号不明。转接头也支持USB3.0
U盘内几乎存满数据,格式:exFAT
(两个设备usb口9触点)
参考[[超简单!]给我家云刷Armbian并安装宝塔5.9完美实现宝塔可控LNMP](https://xfox.fun/archives/476/)
甜糖不怎么吃存储设备,即使用USB2.0的U盘或者外置硬盘盒加机械硬盘也能跑,但是为了提高存储性能以便获取更高收益,更好的存储设备当然是很有必要的。
参考:在我家云上格式化并挂载60G固态硬盘
这一步对于某些用户似乎不是必须的,但是如果你从来没做过类似的工作完全可以照做。