Android 错误信息集锦(持续更新)

一、Attempt to invoke virtual method ‘void android.app.ActionBar.hide()’ on a null object reference

报错发生处:

 when (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
            true -> window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
            false -> {
                val decorView = window.decorView
                val uiOption = View.SYSTEM_UI_FLAG_FULLSCREEN
                decorView.systemUiVisibility = uiOption
                actionBar.hide()
                //supportActionBar?.hide()
            }
        }

报错原因:

如果 Activity 继承 AppCompactActivity 而不是继承的 Activity,使用的支持库后必须使用 getSupportActionBar() 而不是 getActionBar()

二、Activity com.xxActivity has leaked window DecorView@ab38a0a[] that was originally added here

E/WindowManager: android.view.WindowLeaked: Activity com.com.xxActivity has leaked window DecorView@ab38a0a[] that was originally added here
at android.view.ViewRootImpl.(ViewRootImpl.java:484)

具体原因:
因为 Dialog 为依托于具体的 Activity 而存在的,当 ActivityStack里的 Activity由于一系列操作而退栈的同时 ,相应的` Dialog 没有置空,这时在新的Activity页面重新调用 Dialog#show()时,App 就出现崩并且报出如上的错误信息,其原因是因为在新的Activity页面调用的Dialog 实例`是未被回收的基于上一个 Activity 建立的对象,当然不能被新的Activity 调用。
解决方法:
在上一个 Activity 的 onPause()、onStop() 或者 onDestory()方法中对Dialog 对象做 dissmiss()并置空操作

 private void onPause(){
    mDialog.dissmiss();
    mDialog = null;
 }

三、java.lang.ref.SoftReference cannot be cast to android.view.inputmethod.InputConnection

具体报错信息如下

java.lang.ClassCastException: java.lang.ref.SoftReference cannot be cast to android.view.inputmethod.InputConnection
at com.android.tools.profiler.support.profilers.EventProfiler$InputConnectionHandler.run(EventProfiler.java:289)

报错场景:

先前调试使用的为 华为荣耀V10(8.0),在做 Memory Profiler 时,开启了高级选项配置,在换另一台手机 华为荣耀 6p(6.0) 时出现异常情况:打开 App 就出现崩溃,并且报出如上错误信息。重启电脑、手机、clean 项目无效,同时展示的情况为:运行其他项目无异常、同事在荣耀 6p 调试项目无异常

最终通过 Google 找到 解决方法:

关闭 Memory Profile 时的高级选项配置

Android 错误信息集锦(持续更新)_第1张图片

具体的原因上面的解决办法的帖子中也有提到:开启高级配置会占用大量的内存,直接导致项目崩溃(也许会这样,如图片所示 AS 也提醒我们开启此选项会对性能造成一定的影响)。

你可能感兴趣的:(Android,开发)