1.WindowManager: android.view.WindowLeaked
1.子线程直接操作UI:如弹Toast
2.java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder
recycle_view等数据源修改后,没及时通知Adapter更新数据,场景:RecyclerView 下拉刷新时,若绑定的 List 对象在更新数据之前进行了 clear,而这时用户紧接着迅速上滑 RV,就会造成崩溃
3.java.lang.IndexOutOfBondsException:setSpan(3..3) ends beyond length 2
场景:例如editText设置了maxLength值为15,但是edittext.settext的String长度为16.
etUserNick.setText(name);
etUserNick.setSelection(name.length());
4.Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.SafeBrowsingResponse"
这是Android8.0上的一个安全检查。浏览器在Android8.0后浏览网站更为安全,对一些认定不安全的网站可能会给予用户警告
用于指示在命中恶意URL时要采取的操作。 此类的实例由WebView创建并传递给WebViewClient.onSafeBrowsingHit(WebView,WebResourceRequest,int,SafeBrowsingResponse)。 主机应用程序必须调用showInterstitial(boolean),proceed(boolean)或backToSafety(boolean)来设置WebView对安全浏览命中的响应。如果启用了报告,则将根据WebView.getSafeBrowsingPrivacyPolicyUrl()引用的隐私策略发送所有报告。
5.java.lang.InstantiationException: class has no zero argument constructor
引起这个报错的问题有很多,其中一项就是在注册同一个广播时,同时用到了动态注册和静态注册两种方式。
参考:【Android】使用广播时出现异常:java.lang.InstantiationException: class has no zero argument constructor
6.android.view.WindowManager$BadTokenException: Unable to add window — token android.os.BinderProxy@438e7108 is not valid; is your activity running?
主要是因为使用了一些耗时操作(如网络请求,文件读取等等)后,需要弹出弹窗提醒用户,而在这个过程中,用户很可能因为等不起就已经把Activity关闭,等任务完成后,也没有对Activity的运行状态进行判断,“强行”要在Activity上添加弹窗,才会有此问题。解决:1.Activity执行finish()方式时取消任务。2任务执行后判断Activity状态。
if(!isFinishing() && !isDestroyed()){}
参考:Android 后台线程弹对话框导致程序崩溃(is not valid; is your activity running)
7.11-02 15:59:27.071 9106-9106/com.wanwu.wanwu E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 2001944)
11-02 15:59:27.072 9106-9106/com.wanwu.wanwu E/MicroMsg.SDK.MMessageAct: send fail, ex = Failure from system
这是使用intent传输数据时,数据过大,超过了限制的1M。参见: