Android WebView ZoomManager.onSizeChanged NullPointerException -
i getting webview exception on class, doesn't specify line. here exception:
java.lang.nullpointerexception @ android.webkit.zoommanager.onsizechanged(zoommanager.java:955) @ android.webkit.webviewclassic.onsizechanged(webviewclassic.java:5634) @ android.webkit.webview.onsizechanged(webview.java:2147) @ android.view.view.sizechange(view.java:14400) @ android.view.view.setframe(view.java:14375) @ android.webkit.webview.access$701(webview.java:239) @ android.webkit.webview$privateaccess.super_setframe(webview.java:1778) @ android.webkit.webviewclassic.setframe(webviewclassic.java:5610) @ android.webkit.webview.setframe(webview.java:2141) @ android.view.view.layout(view.java:14286) @ android.view.viewgroup.layout(viewgroup.java:4562) @ android.widget.framelayout.onlayout(framelayout.java:448) @ android.view.view.layout(view.java:14289) @ android.view.viewgroup.layout(viewgroup.java:4562) @ android.widget.linearlayout.setchildframe(linearlayout.java:1671) @ android.widget.linearlayout.layoutvertical(linearlayout.java:1525) @ android.widget.linearlayout.onlayout(linearlayout.java:1434) @ android.view.view.layout(view.java:14289) @ android.view.viewgroup.layout(viewgroup.java:4562) @ android.widget.framelayout.onlayout(framelayout.java:448) @ android.view.view.layout(view.java:14289) @ android.view.viewgroup.layout(viewgroup.java:4562) @ android.view.viewrootimpl.performlayout(viewrootimpl.java:1976) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1730) @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1004) @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5481) @ android.view.choreographer$callbackrecord.run(choreographer.java:749) @ android.view.choreographer.docallbacks(choreographer.java:562) @ android.view.choreographer.doframe(choreographer.java:532) @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:735) @ android.os.handler.handlecallback(handler.java:730) @ android.os.handler.dispatchmessage(handler.java:92) @ android.os.looper.loop(looper.java:137) @ android.app.activitythread.main(activitythread.java:5103) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:525) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:737) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) @ dalvik.system.nativestart.main(native method)
and here code:
import com.flurry.android.flurryagent; import utils.sendemail; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.webkit.webchromeclient; import android.webkit.websettings; import android.webkit.webview; import android.webkit.webviewclient; import android.webkit.websettings.pluginstate; public class youtubeactivity extends activity { webview webview = null; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); webview = new webview(this); setcontentview(webview); // long timeout = viewconfiguration.getzoomcontrolstimeout(); // new timer().schedule(new timertask() { // @override // public void run() { // webview.destroy(); // } // }, timeout); webview.getsettings().setappcacheenabled(false); webview.getsettings().setjavascriptenabled(true); webview.setinitialscale(1); webview.getsettings().setpluginstate(pluginstate.on); websettings websettings = webview.getsettings(); websettings.setloadsimagesautomatically(true); websettings.setloadwithoverviewmode(true); websettings.setbuiltinzoomcontrols(true); //websettings.setallowcontentaccess(true); //websettings.setsupportzoom(true); websettings.setusewideviewport(true); webview.setwebviewclient(new webviewclient() { public boolean shouldoverrideurlloading(webview view, string url) { view.loadurl(url); return false; } }); webview.setwebchromeclient(new webchromeclient(){}); websettings.setjavascriptenabled(true); websettings.setdomstorageenabled(true); websettings.setappcacheenabled(true); websettings.setappcachepath(getapplicationcontext().getfilesdir().getabsolutepath() + "/cache"); websettings.setdatabaseenabled(true); websettings.setdatabasepath(getapplicationcontext().getfilesdir().getabsolutepath() + "/databases"); //websettings.setuseragentstring("dolphin"); //webview.loadurl("http://javatester.org/javascript.html"); webview.loadurl("http://www.youtube.com/user/okudjavavich"); // webview.loadurl("http://www.youtube.com/g33ktalktv"); } @override public void onpause() { super.onpause(); // code webview.clearcache(true); webview.getsettings().setappcacheenabled(false); webview.clearview(); webview.stoploading(); webview.destroy(); this.finish(); } @override public void ondestroy() { super.ondestroy(); // code try { webview.getsettings().setbuiltinzoomcontrols(true); } catch ( exception e ) { } } @override public void onstop() { super.onstop(); // code flurryagent.onendsession(this); //webview.goback(); try { webview.clearview(); webview.getsettings().setappcacheenabled(false); webview.stoploading(); webview.destroy(); } catch ( exception e ) { } this.finish(); } @override public boolean onkeydown(int keycode, keyevent event) { if ((keycode == keyevent.keycode_back) && webview.cangoback()) { webview.goback(); return true; } return super.onkeydown(keycode, event); } //@override public void onpagefinished(webview view, string url) { //super.onpagefinished(view, url); view.clearcache(true); } public void onbackpressed ( ) { webview.clearview(); } @override protected void onstart() { super.onstart(); flurryagent.onstartsession(this, "4vynfk3v6rcz53cz3j32"); } }
this happens on android 4.3. know how stop crash? can't reproduce it, see in crash reports.
Comments
Post a Comment