在全屏 webview 诺基亚 x 中输入视频时出现 NullPointerException

Posted

技术标签:

【中文标题】在全屏 webview 诺基亚 x 中输入视频时出现 NullPointerException【英文标题】:NullPointerException when entering video in full screen webview nokia x 【发布时间】:2014-05-16 07:02:25 【问题描述】:

您好,我在过去两天一直在寻找解决此问题的方法,但仍然没有得到任何解决方案。在webview 我正在播放YouTube 视频,当我点击它时,视频工作正常,但如果我点击Full Screen 图标,应用程序崩溃并出现以下错误。我尝试在WebCromeClient 中覆盖onShowCustomeView,但它不起作用。 我尝试了WebView and html5 <video>线程的所有解决方案。这些解决方案适用于android手机我在LG g2和xperia p和nexus 7上测试过,但在诺基亚x上它仍然崩溃。有什么办法可以阻止视频全屏播放或完全播放。

04-03 10:12:50.769 E/AndroidRuntime( 3867): java.lang.NullPointerException

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.view.ViewGroup.addViewInner(ViewGroup.java:3384)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.view.ViewGroup.addView(ViewGroup.java:3256)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.view.ViewGroup.addView(ViewGroup.java:3232)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.webkit.HTML5VideoFullscreen.enterFullscreen(HTML5VideoFullscreen.java:253)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.webkit.HTML5VideoView.enterFullscreenVideoState(HTML5VideoView.java:535)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.webkit.HTML5VideoViewProxy$VideoPlayer.enterFullscreenVideo(HTML5VideoViewProxy.java:183)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.webkit.HTML5VideoViewProxy.handleMessage(HTML5VideoViewProxy.java:476)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.os.Handler.dispatchMessage(Handler.java:99)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.os.Looper.loop(Looper.java:137)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at android.app.ActivityThread.main(ActivityThread.java:4807)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at java.lang.reflect.Method.invokeNative(Native Method)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at java.lang.reflect.Method.invoke(Method.java:511)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559)

    04-03 10:12:50.769 E/AndroidRuntime( 3867):     at dalvik.system.NativeStart.main(Native Method)

    04-03 10:12:50.769 I/ActivityManager(  571): Notify an ApplicationCrash

【问题讨论】:

developer.android.com/reference/android/webkit/… 这如何帮助阻止视频进入全屏模式? 覆盖该方法以返回非空视图对象(例如,您的布局中的虚假 0x0 视图)并查看您是否仍然崩溃。如果它,我们可以尝试阻止视频进入全屏再次崩溃 @Sreekanthss 你绝对是天才。只需在诺基亚 x 上工作,非常感谢!我将方法覆盖为@Override public View getVideoLoadingProgressView() FrameLayout frameLayout = new FrameLayout(getSherlockActivity()); frameLayout.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); return frameLayout; 现在视频全屏播放没有任何问题。 请将此作为答案发布。 【参考方案1】:

看this

覆盖该方法以返回非空视图对象(例如,布局中的虚假 0x0 视图)并查看是否仍然崩溃

         @Override
         public View getVideoLoadingProgressView()  
           FrameLayout frameLayout = new FrameLayout(getSherlockActivity());    
           frameLayout.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT,    
          LayoutParams.MATCH_PARENT));
           return frameLayout;
         

【讨论】:

以上是关于在全屏 webview 诺基亚 x 中输入视频时出现 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

在 WebView 中全屏视频后隐藏菜单栏和停靠

Flutter:如何在 webview 中阻止全屏视频?

全屏时 HTML 5 视频崩溃

在全屏模式下运行 Qt 应用程序时出现“黑屏”问题

如何全屏模式自定义视频播放器并在全屏打开时向下滚动

Swift 2:仅在全屏视频上进行屏幕旋转