
请帮忙.
码:
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中导致这种情况的原因是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)