【问题标题】:Java nullpointer exception from Webview来自 Webview 的 Java 空指针异常
【发布时间】:2015-03-23 12:52:22
【问题描述】:

我试图搜索这个问题,但这个错误看起来与this error 不一样(我的 google play 版本较新,请注意该错误位于 WebViewClassic 的不同行,因此可能是不同的错误或在较新版本中相同)但我从 webview 收到完全相同的错误异常

java.lang.NullPointerException
at android.webkit.WebViewClassic$WebViewInputConnection.setNewText(WebViewClassic.java:583)
at android.webkit.WebViewClassic$WebViewInputConnection.setComposingText(WebViewClassic.java:323)
at android.webkit.WebViewClassic$WebViewInputConnection.commitText(WebViewClassic.java:339)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:279)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
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)

但是我没有直接使用任何 webview 类。但是,这个问题可能与 AdView 有关,但我不明白如何。我的代码如下:

 @Override
 public void onPause() {
    //TODO: these lines are created because onPuase of Adview doesn't work

     if ( adView != null ) {
         adView.pause();
         adView.destroy();
         adView = null;

         Log.i(ApplicationData.APP_TAG, TAG + ": OnPause, pausing the Adview");
     }

     super.onPause();

 }

错误出现在 Log.i 行之后,我原以为在调用 AdView 时会出现此错误,但之后不会出现。此错误是否可能来自线程操作?知道如何避免这个问题吗?

【问题讨论】:

    标签: android adview


    【解决方案1】:

    https://developer.android.com/reference/com/google/android/gms/ads/AdView.html 中的示例和AdView.destroy() 的文档为例,您应该只在onPause() 中调用adView.pause(),然后在onDestroy() 中调用adView.destroy()

    堆栈转储看起来像另一个线程正在访问被破坏的AdView 实例。

    【讨论】:

    • 嗯...对于 webview 的例外情况,稍后调用此方法将如何避免该问题?我的意思是......对于我遇到的那种错误,为什么它可能来自我们所处的 Activity 状态?
    • 看起来Handler 仍在向WebViewClassic 发送消息,WebViewClassic 被封装在已销毁的AdView 中。
    • 嗯....你可能有一点。我将在生产中进行测试,如果可行,接受问题!!!!
    • 目前没有问题。我认为是解决方案!
    • 一个新问题正在发生......不同的是,我创建了一个新问题。很奇怪...stackoverflow.com/questions/28856883/…
    猜你喜欢
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多