2011-12-16 113 views
4

我已经收到了崩溃报告与以下日志内容:是什么导致这个NullpointerException?

java.lang.NullPointerException 
at android.webkit.PluginFullScreenHolder.show(PluginFullScreenHolder.java:85) 
at android.webkit.WebView$PrivateHandler.handleMessage(WebView.java:8553) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4340) 
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:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 

我试图寻找在网络上PluginFullScreenHolder,但行85似乎是我发现的类注释。

我猜崩溃是涉及到WebView - 可能是因为我试图加载null,但我非常不确定这一点,特别是因为我没有看到的网址是null方式。

我相信该报告来自Galaxy Nexus(在Android 4.0上),如果这有什么区别,但我不确定。如果不是,它是一个蜂窝设备。

有经验的人在PluginFullScreenHolder

这里是我的代码

web = (WebView) findViewById(R.id.webView1); 
web.setBackgroundColor(android.R.color.black); 
web.getSettings().setJavaScriptEnabled(true); 
web.getSettings().setPluginsEnabled(true); 
web.getSettings().setUserAgent(1); 
web.getSettings().setSupportZoom(false); 
web.loadUrl("http://www.justin.tv/widgets/live_embed_player.swf?auto_play=true&fullscreen=true&start_volume=100&hostname=www.justin.tv&channel=" + this.getIntent().getExtras().getString("channelName")); 

奇怪的是,从市场的崩溃报告没有提及我的代码什么 - 什么使以往任何时候什么 - 你上面看完整的日志。毫无疑问,它是PluginFullScreenHolder.java。

编辑2:

找到正确的类:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/webkit/PluginFullScreenHolder.java#PluginFullScreenHolder.show%28%29

有问题的行是:

client.onShowCustomView(mLayout, mOrientation, mCallback); 
+0

在此发布一些代码。 – 2011-12-16 23:43:56

+0

完成,谢谢:-) – 2011-12-16 23:46:44

回答

7

这是PluginFullScreenHolder.javasource code for android 4.0

在第84行,您有mWebView.getWebChromeClient(),它根据您的异常返回null(它在第85行使用,没有空的检查)。

一种解决方法是设置一个空WebChromeClient(当一些可能影响浏览器的用户界面发生,例如,进度更新和JavaScript警报送到这里被称为):

web.setWebChromeClient(new WebChromeClient()); 

但是,这是真的奇怪,因为它永远不应该是空的。

+0

错误,是的,这真的很奇怪。这个愚蠢的事情是,我无法测试它是否是固定的,因为我无法重现错误。不过,我会放弃它。 – 2011-12-17 01:21:46

0

我不知道它是否能卜有用的,不知道它,但它似乎是例外与超类有关:

android.app.Dialog 

的方法show()

您可能想看看source code

0

您是否尝试初始化“网络”?

WebView web = new WebView(this); 
web = (WebView) findViewById(R.id.webView1); 

如果你声明如下

private WebView web; 

您的变量,您将得到NullpointerExeption,你必须初始化的对象。

相关问题