调试在处理程序中崩溃

时间:2015-06-03 07:07:28

标签: java android android-webview ads mopub

最近我的错误报告工具开始显示此崩溃(由于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),因为我的应用中没有网页浏览。

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

2 个答案:

答案 0 :(得分:0)

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

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

或者您可以使用AsyncTask

答案 1 :(得分:0)

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