android版本4.1中webview.destroy()崩溃问题

遇到一个奇葩问题,我在android 4.1系统的设备中调用 webview.destroy()方法后,遇到的Crash.

下面这个:
java.lang.NullPointerException
at android.webkit.WebViewClassic.stopLoading(WebViewClassic.java:2788)
at android.webkit.WebView.stopLoading(WebView.java:955)
at org.apache.cordova.CordovaWebView$2.run(CordovaWebView.java:426)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)

原因是4.1 中webview.destroy();中触发了WebView的stopLoading()。 这是一个系统bug.
https://groups.google.com/forum/#!topic/google-admob-ads-sdk/H3lkDEmburw

解决方案是:
判断版本号,如果版本为4.1不调用 webview.destroy().

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容