Android 位图.getWidth()处的空指针导致WebView崩溃

Android 位图.getWidth()处的空指针导致WebView崩溃,android,webview,Android,Webview,我使用WebView,并在下面的日志中崩溃 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference at com.android.webview.chromium.Ap.getDefaultVideoPoster(WebViewContentsClientAdapter.java:56

我使用WebView,并在下面的日志中崩溃

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
  at com.android.webview.chromium.Ap.getDefaultVideoPoster(WebViewContentsClientAdapter.java:565)
  at org.chromium.android_webview.DefaultVideoPosterRequestHandler$$Lambda$0.run(Unknown Source:2)
  at android.os.Handler.handleCallback(Handler.java:789)
  at android.os.Handler.dispatchMessage(Handler.java:98)
  at android.os.Looper.loop(Looper.java:172)
  at android.app.ActivityThread.main(ActivityThread.java:6637)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
在第一行,它在null指针上显示Bitmap.getWidth(),但我在webview上并没有使用任何位图

下面是我的webview代码

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowContentAccess(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAppCacheEnabled(true);
webSettings.setDomStorageEnabled(true);     
webSettings.setLoadsImagesAutomatically(true);
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setPluginState(WebSettings.PluginState.ON);

webView.addJavascriptInterface(new WebViewResizer(), "WebViewResizer");
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView webView, String url) {
        super.onPageFinished(webView, url);
        System.out.println("WEBVIEW LOAD PAGE FINISHED");
    }
});
webView.setWebChromeClient(new WebChromeClient());
webView.loadDataWithBaseURL(null, URL, "text/html; charset=utf-8", null, "");
我试图删除行集chrome客户端,但没有帮助

webView.setWebChromeClient(new WebChromeClient());
URL是这样的脚本:

 myScript = "<iframe width=\"500\" height=\"402\" src=\"https://www.youtube.com/embed/y7tEBhRp-MA\" frameborder=\"0\" gesture=\"media\" allow=\"encrypted-media\" allowfullscreen></iframe>";
myScript=”“;

有没有人像我一样遇到同样的问题?你是如何解决的?

试试我自己的实现。将以下代码添加到您的CustomChromeClient

@Nullable
@Override
public Bitmap getDefaultVideoPoster() {
    if (super.getDefaultVideoPoster() == null) {
        return BitmapFactory.decodeResource(context.getResources(),
                R.drawable.ic_launcher);
    } else {
        return super.getDefaultVideoPoster();
    }
}

你放的事故日志没用。请发布你的日志。我不确定你是否能将YouTube视频框入app@statosdotcom崩溃仅显示此日志。确定。按照@matio的建议,尝试打开另一个url,例如google.com。在那之后,我会尝试让它运行,而不使用到目前为止您一直在使用的
websettings
。谢谢,为我工作。但是我必须找到一种方法来传递到CustomWebClient应用程序上下文中,以便获得资源。Thanks@leeCoder您可以使用自定义Chome客户端构造函数来实现这一点