no packager (error code 101)
比较完整的报错信息如下:run-android --no-packager 时出错 (error code 101)
如果应用代码本身没有严重的问题,VSCode调试时出现这种无厘头的报错可以在Node命令行窗口中通过下面的命令来解决:
// 已经定位到工程目录下
cd android
gradlew clean
第二行命令将用于清除android目录下的build文件夹
参考链接
Execution failed for task ‘:app:transformDexArchiveWithDexMergerForDebug’.
完整报错信息如下:
* What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
报错原因:应用中有超过64K的方法(包括依赖项)
解决方案
JS如何将数组逆序排列
开发的应用中有类似于时间轴的功能,如果历史记录太多不容易查找需要逆序排列,将UI组件对象的数组逆序排列即可,这里记录两个方法:
array.unshift(插入到数组开头的元素) // 与push()相对应
array.reverse() // 将数组中已有的元素逆序排列
如何判断对象是不是字符串
typeof(obj) == 'string'
for in 和 for of 的区别
for in // 迭代数组或对象的索引
for of // 迭代数组的内容
如果对对象使用for of会报错。
关于JS对象的深拷贝
下面深拷贝的方法是一个通吃的解决方案,可以对多层嵌套的对象进行深拷贝。
JSON.parse(JSON.stringify(obj))
关于组件的绝对位置
需要组件设置为绝对位置,如果想让它显示在其他已有组件的上层,那么应该将它写在已有组件的后面。
<View>
<其他组件>
...
</ 其他组件>
<绝对位置组件 style={{position: 'absolute'}}>
</ 绝对位置组件>
</ View>