在android webView中导致这种情况的原因是什么?

在android webView中导致这种情况的原因是什么?,第1张

概述我收到以下异常,无法调试它. 请帮忙. 码: public class HybridActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { 我收到以下异常,无法调试它.

请帮忙.
码:

public class HybrIDActivity extends Activity {    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        WebVIEw webvIEw=(WebVIEw)findVIEwByID(R.ID.webkitWebVIEw1);        WebSettings settings=webvIEw.getSettings();        settings.setJavaScriptEnabled(true);        settings.setDatabaseEnabled(true);        settings.setDomStorageEnabled(true);        settings.setAllowfileAccess(true);        settings.setBuiltInZoomControls(true);        webvIEw.setWebChromeClIEnt(new WebChromeClIEnt());        //  webvIEw.loadUrl("file:///androID_asset/www/HTML/hyb.HTML");        // webvIEw.loadUrl("file:///androID_asset/index.HTML");        try {            webvIEw.loadUrl("http://www.Google.com");        } catch (Exception e) {            // Todo auto-generated catch block            e.printstacktrace();        }        MultipleWebVIEwHanlder webVIEw2 = new MultipleWebVIEwHanlder(this);        webVIEw2.loadNewWebVIEw();    }}public class MultipleWebVIEwHanlder {    public MultipleWebVIEwHanlder(Context context) {        // Todo auto-generated constructor stub        this.context = context;    }    public voID MultipleWebVIEwArea(final String command) {        final relativeLayout.LayoutParams params = new  relativeLayout.LayoutParams(relativeLayout.LayoutParams.FILL_PARENT,relativeLayout.LayoutParams.FILL_PARENT);        try {            Log.i("","InsIDe tryyyyyyyyyyyyyyyyyyyyy");            final WebVIEw mWebVIEw = new WebVIEw(context);            WebSettings settings=mWebVIEw.getSettings();            settings.setJavaScriptEnabled(true);            settings.setDatabaseEnabled(true);            settings.setDomStorageEnabled(true);            settings.setAllowfileAccess(true);            settings.setBuiltInZoomControls(true);            mWebVIEw.setWebChromeClIEnt(new WebChromeClIEnt());            JsInterface.handler.post(new Runnable() {                @OverrIDe                public voID run() {                    try {                        Log.i("","InsIDe tryyyyyyyyyyyyyyyyyyyy b4 add content vIEwwwwwwwwww");                        Runnable runnable = new Runnable() {                            public voID run() {                                ((Activity)context).addContentVIEw(mWebVIEw,params);                                Log.i("","InsIDe tryyyyyyyyyyyyyyyyyyyy after add content vIEwwwwwwwwww ");                                mWebVIEw.loadUrl(((Activity)context).getResources().getString(R.string.DemoURL));                            }                        };                        ((Activity)context).runOnUiThread(runnable);

日志:

04-20 10:55:58.052: WARN/dalvikvm(9255): threadID=8: thread exiting with uncaught exception (group=0x400207d8)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255): FATAL EXCEPTION: WebVIEwCoreThread  04-20 10:55:58.092: ERROR/AndroIDRuntime(9255): androID.vIEw.VIEwRoot$CalledFromWrongThreadException: Only the original thread that created a vIEw hIErarchy can touch its vIEws.  04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.vIEw.VIEwRoot.checkThread(VIEwRoot.java:2812)  04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.vIEw.VIEwRoot.invalIDateChild(VIEwRoot.java:607)  04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.vIEw.VIEwRoot.invalIDateChildInParent(VIEwRoot.java:633)  04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.vIEw.VIEwGroup.invalIDateChild(VIEwGroup.java:2505)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.vIEw.VIEw.invalIDate(VIEw.java:5115)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.webkit.WebVIEw.vIEwInvalIDate(WebVIEw.java:2565)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.webkit.WebVIEw.invalIDateContentRect(WebVIEw.java:2584)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.webkit.WebVIEw.access00(WebVIEw.java:304)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.webkit.WebVIEw$PrivateHandler.handleMessage(WebVIEw.java:7860)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.os.Handler.dispatchMessage(Handler.java:99)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.os.Looper.loop(Looper.java:123)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at androID.webkit.WebVIEwCore$WebCoreThread.run(WebVIEwCore.java:637)04-20 10:55:58.092: ERROR/AndroIDRuntime(9255):     at java.lang.Thread.run(Thread.java:1096)04-20 10:55:58.102: WARN/ActivityManager(172):   Force finishing activity com.Hy5/.activity.Hy5CanvasActivity
解决方法 没有看到代码就很难说
但似乎你正在尝试从它的所有者线程之外更改一个元素(这可能是因为你试图从其他线程更改UI元素).

所以试试这个:有一个辅助函数runOnUiThread()接受一个runnable作为参数:

Runnable runnable = new Runnable() {    public voID run() {        // your code here    }}runOnUiThread(runnable);
总结

以上是内存溢出为你收集整理的在android webView中导致这种情况的原因是什么?全部内容,希望文章能够帮你解决在android webView中导致这种情况的原因是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1129002.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存