【问题标题】:Debug crashes in Handlers在处理程序中调试崩溃
【发布时间】:2015-06-03 07:07:28
【问题描述】:

最近我的错误报告工具开始显示此崩溃(由于 webviews 实施,设备制造商略有不同)

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
       at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4317)
       at android.view.ViewRootImpl.invalidateChild(ViewRootImpl.java:892)
       at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:941)
       at android.view.ViewGroup.invalidateChild(ViewGroup.java:4019)
       at android.view.View.invalidate(View.java:8621)
       at android.webkit.WebView.invalidate(WebView.java:1743)
       at android.webkit.WebView.viewInvalidate(WebView.java:4065)
       at android.webkit.WebView.invalidateContentRect(WebView.java:4084)
       at android.webkit.WebView.setNewPicture(WebView.java:14353)
       at android.webkit.WebView$PrivateHandler.handleMessage(WebView.java:13747)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:137)
       at android.os.HandlerThread.run(HandlerThread.java:60)

我认为此错误来自 Mopub 的实现(或来自其他以 mopub 为中介的广告 sdk),因为我的应用中没有 webview。

我如何隔离和确定是我引入的错误还是 SDK 中的错误?

【问题讨论】:

    标签: java android android-webview ads mopub


    【解决方案1】:

    只有 UIThread 可以处理视图 (ui),因此请尝试使用此代码通知您的应用 UI

    runOnUiThread(new Runnable() {
     @Override
     public void run() { // add your code here 
    }});
    

    或者你可以使用AsyncTask

    【讨论】:

      【解决方案2】:

      当您尝试在后台线程中更新 UI 视图时会发生此错误。确保您没有在后台线程中更新任何视图,例如编辑文本、文本视图等。在 UI 线程中更新您的视图。例如,请参阅this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-30
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多