сбой в com.android.webview.chromium.WebViewContentsClientAdapter.getDefaultVideoPoste - PullRequest
0 голосов
/ 03 октября 2019

На самом деле я открыл URL прямой трансляции в андроиде webview и получил ошибку нулевого указателя bitmap.getwidth(). так что мой вопрос, это нужно исправить из приложения Android или со стороны сервера? Не получая линии нет или другие вещи, чтобы исправить это. любая идея

Fatal Exception: 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:1142)
       at org.chromium.android_webview.DefaultVideoPosterRequestHandler$1.run(DefaultVideoPosterRequestHandler.java:39)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5254)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)

1 Ответ

0 голосов
/ 03 октября 2019

Добавьте приведенный ниже код к вашему CustomChromeClient;

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

он должен работать с этим обходным путем:

В Kotlin:

override fun getAssets(): AssetManager {
    return resources.assets
}

В Java:

@Override
public AssetManager getAssets() {
    return getResources().getAssets();
} 
...