Android - неизвестная причина сбоя веб-просмотра - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть собственный класс, который я использую для размещения веб-просмотра. Он отлично работает на большинстве устройств, но на Motorolla Droid Bionic он выдает эту ошибку время от времени при загрузке страницы.

java.lang.NullPointerException
at android.webkit.WebView.sendOurVisibleRect(WebView.java:2384)
at android.webkit.WebView.onScrollChanged(WebView.java:4820)
at android.view.View.scrollTo(View.java:5016)
at android.webkit.WebView.onOverScrolled(WebView.java:2603) 
at android.view.View.overScrollBy(View.java:8890)
at android.webkit.WebView.computeScroll(WebView.java:3004)
at android.view.ViewGroup.drawChild(ViewGroup.java:1562)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6883)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2106)
at android.view.ViewRoot.draw(ViewRoot.java:1562)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1298)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1911)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3821)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)

После устранения неполадок с помощью отладчика, я просто не могу понять, откуда исходит нулевой указатель ..... у кого-нибудь есть подобные проблемы с бионикой дроидов? или другие устройства в этом отношении.

Ответы [ 2 ]

2 голосов
/ 27 июня 2012

вам нужно удалить WebView из макета перед вызовом destroy

Destroy внутреннего состояния WebView.Этот метод следует вызывать после удаления WebView из системы просмотра.Никакие другие методы нельзя вызывать в WebView после уничтожения.

1 голос
/ 06 апреля 2012

Этот вопрос старый, но, поскольку я только что столкнулся с тем же исключением;Я подумал, что было бы полезно поделиться своим выводом.

У меня было это действие с очень простым макетом - где представление содержимого действия было единственным экземпляром WebView.

Это было установленокак это:

onStart()
{
    this.setContentView(this.browser);
}

, и у меня было это в методе onStop моей Деятельности:

onStop()
{
    this.browser.destroy()
}

Логика моего приложения была разработана таким образом, что это действие должно было запускаться и останавливатьсямного раз ... так ... в самый первый раз, когда это началось и остановилось, все прошло нормально ... но после 2-го выполнения "onStart" у меня было исключение.

Итак, я удалил вызовна "this.browser.destroy ()" и все работало ... Я полагаю, что это убило мой объект, и поэтому у меня была ссылка на нуль ...

Итак, если вы получаете это, вы 'теряете действительную ссылку на какое-то представление в вашем макете ... просто изучите ваш код и попытайтесь выяснить, где он находится в состоянии "null-ed".

...