记录一次问题总结

  • AsyncTask
    onPreExecute:在UI线程执行,执行在整个异步之前,可以进行一些UI处理
    onPostExecute:在UI线程执行,执行在整个异步之后,可以进行一些异步后的UI处理
    onCancelled():在取消或中断异步后的回调,不能通过调用此方法来取消异步;一次异步取消后会回调此方法,并且会回调onPostExecute()方法

  • 串口通信
    权限问题:exec("/system/bin/su")或者是exec("/system/sbin/su"),但其实并没有遇到这个问题
    串口地址:由于地址没有正确的输入,所以导致了无法打开串口,无法读取串口的数据;一开始以为是.so文件的问题,一直反复折腾.so文件,后面实在没解决,通过日志一直看到fd为-1,权限拒绝,又通过stackflower查找,更改权限,有些是更改bin下的权限,有些又是更改sbin下的权限,都试了一下,发现还是同样的问题。然后旧开始检查代码(从Java转为了kotlin),发现代码也没啥问题,就查阅多个关于串口通信相关的知识,最后发现打开串口有两个重要的参数——串口地址、波特率等,然后就仔细检查了一下自己的串口地址,仔细检查发现自己的串口地址把S写成了5("/dev/ttyS0"

  • OnClickListener
    点击事件始终无法生效,通过实现View.OnClickListener方法
    老生常谈的问题了,实在没想到自己有一天还会犯这样的错误,以前还帮别人解决一次,原因就是没有设置listener

  • Kotlin byte数组
    toByteArray导致只初始化了一个空间,所以读取二进制流的时候只有一个值,通过共用一块内存ByteArray(64)才是初始化一定大小的内存空间

  • RxJava Observer
    也是一个很智障的错误,自己写法不行啊,重写onSubscribe方法使用了d.dispose()导致无法接收数据 onNext无用

  • xml布局

    • ConstraintLayout
      在我使用的模拟器上,始终无法放置底部,总是不能占据全屏,底部总会留白,最后实在是没法换了一个父布局

    • View
      在xml中写一个分割线,用View写的,但是手动写代码写成了view(小写的),所以一直报错,一直没发现,总觉得自己没写错,后面通过stackflower才发现,小写的view导致:Attempt to invoke virtual method ‘boolean java.lang.String.equals(java.lang.Object)’ on a null object reference

    • LinearLayout
      两个linearlayout(先水平、再横向)还会导致无法装满全屏?外层水平内层垂直match_parent无法占据外层的match_parent(暴力解决,指定layout_bottom)具体原因无法查明,部分机器显示正常,部分机器显示不正常,最后只能通过暴力解决

    • support.Toolbar
      在toolbar直接写view的话,会始终有默认title,不管你怎么修改,最后通过代码设置或者在toolbar中使用要给ViewGroup

  • room

    扫描二维码关注公众号,回复: 10742228 查看本文章
  • 自定义View
    由于关闭了硬件加速,导致开机启动会卡10s或者启动后10s后才显示该自定义View,但如果是直接从桌面进入,启动时又没有这个延迟

发布了43 篇原创文章 · 获赞 10 · 访问量 6998

猜你喜欢

转载自blog.csdn.net/baidu_36959886/article/details/88800322