android.view.ViewRoot$CalledFromErrorThreadException

android.view.ViewRoot$CalledFromErrorThreadException,android,Android,HTML: <a href="javascript:AndroidFunction.xxxx()">xxxx</a> 我得到了这个错误: 未捕获处理程序:线程WebViewCoreThread由于未捕获异常而退出 android.view.ViewRoot$CalledFromErrorThreadException: 只有创建视图层次结构的原始线程才能接触其视图 请帮帮我。首先,你不应该从任何地方调用setContentView,而应该是onCreate。如果要更改视

HTML:

<a href="javascript:AndroidFunction.xxxx()">xxxx</a>
我得到了这个错误:

未捕获处理程序:
线程WebViewCoreThread由于未捕获异常而退出
android.view.ViewRoot$CalledFromErrorThreadException

只有创建视图层次结构的原始线程才能接触其视图


请帮帮我。

首先,你不应该从任何地方调用
setContentView
,而应该是
onCreate
。如果要更改
视图
s,请启动新的
活动
或在布局层次结构中添加/更新
视图
s

此外,此
调用FromErrorThreadException
表示您试图在不在UI线程上时编辑
视图
s,这是不允许的(因为我现在不想讨论的原因)。我建议您使用
View.post(Runnable action)
在UI线程上编辑
视图。我的朋友会帮助你的。

试试看

public void xxxx() {
    runOnUiThread(new Runnable() {
        public void run() {
           setContentView(R.layout.x);              
        }
    });
}
原因: 如果试图从UI线程外部向UI线程发送UI事件,则此错误很常见。 测试方法线程试图在UI线程外部与UI交互

建议: 使用处理程序解决原因

解决方案:

public void xxxx() {
    runOnUiThread(new Runnable() {
        public void run() {
           setContentView(R.layout.x);              
        }
    });
}