异常收集篇 - 哥,就他欺负我(未完待续。。。)

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u012400885/article/details/82292465

LZ-Says:在北京,习惯不了俩个人,那就自己过好自己的人生。
这里写图片描述

前言

本篇文章,主要用于整理收集开发过程中遇到的坑,或许这个坑当初耗费了 10 分钟,耗费了半小时,那么既然如此,那就要避免或者加快下次解决问题所耗时间和精力。

不经历点 bug,如何做好一枚合格的猿猿~

哥,就他们欺负我~

  • A:哥,就他们欺负我!

  • B:看哥给你怎么收拾他们!

  • A:这里写图片描述

  • B:这里写图片描述

1. ViewStub must have a valid layoutResource

注意查看布局中的 ViewStub 引用的 layout 是不是 android:layout。

2. Read time out

先放置一张异常图:

在这里插入图片描述

LZ 查看后,修改 Gradle 为离线工作模式即可,如下图:

在这里插入图片描述

3. Only fullscreen opaque activities can request orientation

话说在某天,吧嗒吧嗒敲完运行,吭叽卡拉,崩溃了,查看异常头部如下:

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

经过和度娘百般纠缠,得知如下结论,谷歌 Baba 在新的 Api 中已经增加了强制设置横竖屏模式下不能在设置 Activity 为透明。

我们先来看看谷歌 Baba 放出的部分源码:

  if (getApplicationInfo().targetSdkVersion >= O && mActivityInfo.isFixedOrientation()) {
      final TypedArray ta = obtainStyledAttributes(com.android.internal.R.styleable.Window);
      final boolean isTranslucentOrFloating = ActivityInfo.isTranslucentOrFloating(ta);
      ta.recycle();
       if (isTranslucentOrFloating) {
          throw new IllegalStateException(
                  "Only fullscreen opaque activities can request orientation");
      }
  }

解决这个问题,目测,目前而言,俩种方式:

  • 设置 android:windowIsTranslucent 为 false,当然,这样我们的 Activity 便不透明了;

  • android:screenOrientation=“portrait” 和 android:windowIsTranslucent 留一个,一山不容二虎,自己看的办吧。

这个,也算是 8.0 留下的坑了,反正 LZ 是没看懂为啥要这么做?

4. NestedScrollView 嵌套 RecyclerView 滑动卡顿

直接使用如下代码即可解决:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setSmoothScrollbarEnabled(true);
layoutManager.setAutoMeasureEnabled(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setNestedScrollingEnabled(false);

个人公众号

不定期发布博文,最近有点忙,感谢老铁理解,欢迎关注~

这里写图片描述

参考资料

  1. 谷歌 Baba 坑源码(8.0):https://github.com/aosp-mirror/platform_frameworks_base/commit/39791594560b2326625b663ed6796882900c220f#diff-a9aa0352703240c8ae70f1c83add4bc8R981;
  2. 8.0 透明和横竖屏引发异常:https://stackoverflow.com/questions/48072438/java-lang-illegalstateexception-only-fullscreen-opaque-activities-can-request-o;

猜你喜欢

转载自blog.csdn.net/u012400885/article/details/82292465