更新到8.0之后,到目前为止我们还没有看到崩溃:
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at com.android.webview.chromium.WebViewContentsClientAdapter.getDefaultVideoPoster(WebViewContentsClientAdapter.java:536)
at org.chromium.android_webview.DefaultVideoPosterRequestHandler$1.run(DefaultVideoPosterRequestHandler.java:2)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
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)
这是Chrome中的错误吗?
答案 0 :(得分:4)
感谢@ breakline的回答,我解决了这个问题!谢谢! 但是我没有使用解码位图,而只是创建一个空位并返回:
setWebChromeClient(new WebChromeClient() {
@Override
public Bitmap getDefaultVideoPoster() {
return Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888);
}
});
答案 1 :(得分:3)
任何人仍然想知道而不是在这里贬低是对此的实际解决方案。由于我花了相当多的时间在这里,我会在这里发布。
您需要将以下内容添加到WebChromeClient:
webview.setWebChromeClient(new WebChromeClient() {
@Override
public Bitmap getDefaultVideoPoster() {
Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.black);
return icon;
}
});
任何drawable都可以,只要它是一个实际的PNG文件。如果你使用drawable / xml,你仍会得到一个例外。