在Fragment内设置控件状态时,报JNI DETECTED ERROR IN APPLICATION: can't call void android.view.View.setElevation(float) on null obj错误,并且有一串超长的异常。

百度到的答案都是说因为布局嵌套AppBarLayout 引起的,在布局文件中加入:android:stateListAnimator="@null"就可以了,但我并没有使用AppBarLayout 。

再次检查代码时,发现我是在独立的线程中设置控件状态,实际上是跨线程调用控件了,以往也经常犯这种错误,但是在Activity中,会抛出CalledFromWrongThreadException异常,把设置状态的代码放在runOnUiThread中就可以了。

这段异常是android自动生成的底部导航栏关联的Fragment中出现的,报的异常和Activity中不一样,解决的方式倒是一样的。

activity!!.runOnUiThread {    buttonDevice.isEnabled = false}

 

更多相关文章

  1. Android下使用Logcat打印信息
  2. Android设置虚线、圆角、渐变
  3. Unable to resolve target 'android-7'
  4. Android中更改SQLite数据库中的数据后,刷新ListView。
  5. Android动画分类
  6. 终结篇:Android(安卓)startActivity原理分析(基于Android(安卓)8.
  7. Android(安卓)Dialog弹出时背景全透明
  8. android studio不能运行
  9. Android(安卓)Material Design TabLayout属性app:tabMode和app:

随机推荐

  1. Android Popuwindow使用
  2. Android开发工程师(高薪急聘)
  3. android一些属性的总结
  4. 简析Android五大布局(LinearLayout、Frame
  5. Linux安装mitmproxy并监控android数据包
  6. android获取sdk更新
  7. GCM架构概览
  8. 关于android socket编程时,“Error:Should
  9. Android官方DrawerLayout 抽屉式侧滑菜单
  10. Android ListView 设置分割线的设置