Невозможно создать слой для WebView, размер 640x7040, максимальный размер 8192, тип цвета 4 имеет контекст 1 - PullRequest
4 голосов
/ 20 июня 2019

Я использую WebView внутри ScrollView, и он дает IllegalStateException на Samsung SM-J610F.Он отлично работает на остальных устройствах, на которых я тестировал этот код.

Когда я вынимаю WebView из ScrollView, он работает нормально.Но проблема в том, что у меня есть другие представления ниже WebView, и если я не использую ScrollView, пользователь не сможет увидеть эти представления.

Font Cache (CPU):
      Size: 103.02 kB 
      Glyph Count: 37 
    CPU Caches:
      Shadows: 4.22 KB (2 entries)
    GPU Caches:
      Other:
        Buffer Object: 63.00 KB (2 entries)
      Image:
        Texture: 1.81 MB (28 entries)
             Texture( 1):      168840 Byte (count:8)
             Texture( 2):       54288 Byte (count:1)
             Texture( 3):       44100 Byte (count:1)
             Texture( 4):       31684 Byte (count:6)
             Texture( 5):       29580 Byte (count:1)
             Texture( 6):       29568 Byte (count:1)
             Texture( 7):       29232 Byte (count:3)
             Texture( 8):       28896 Byte (count:1)
             Texture( 9):       28560 Byte (count:1)
             Texture(10):       11024 Byte (count:1)
             .......   
      Scratch:
        Texture: 512.00 KB (1 entry)
        RenderTarget: 1.46 MB (14 entries)
        Buffer Object: 96.03 KB (4 entries)
    Other Caches:
                             Current / Maximum
      VectorDrawableAtlas    0.00 kB /   0.00 KB (entries = 0)
      Layers Total           0.00 KB (numLayers = 0)
    Total GPU memory usage

JNI DETECTED ERROR IN APPLICATION: JNI CallObjectMethod called with pending exception java.lang.IllegalStateException: Unable to create layer for WebView, size 640x7040 max size 8192 color type 4 has context 1
......

1 Ответ

0 голосов
/ 08 июля 2019

Удалите веб-просмотр из вида прокрутки и поместите его отдельно.Также все другие представленные виды добавляют их в Scrollview.Таким образом, ваше веб-представление также будет стабильным, пользователи смогут прокручивать и ссылаться на другие виды.Кроме того, веб-просмотр должен быть объявлен и реализован должным образом:

 wv = (WebView) findViewById(R.id.web_view);
        wv.setInitialScale(1);      //webview page matches the screen size.
        wv.getSettings().setLoadWithOverviewMode(true);
        wv.getSettings().setUseWideViewPort(true);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);    //loads online website when no internet connection.
        wv.loadUrl("https://prajwalwaingankar.wixsite.com/nivala");

Согласно приведенному выше коду, все представления находятся выше веб-просмотра, а веб-просмотр покрывает оставшуюся часть оставшегося размера экрана с использованием метода * 1004.* .setInitialScale (1);
Делайте отзыв, если это необходимо!

...