2017-11-29 4 views
2

Ich erhalte diesen Fehler beim Öffnen eines Webview in Oreo 8. Das Gerät ist Google Pixel. Bitte hilf mir gleich. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.Webview in Oreo funktioniert nicht

Prozess: com.android.chrome:sandboxed_process0, PID: 16787 android.content.res.Resources $ NotFoundException: Array Ressource ID # 0x7f030010 bei android.content.res.Resources.obtainTypedArray (Resources.java : 617) bei android.content.res.Resources.preloadFonts (Resources.java:379) bei android.app.ActivityThread.handleBindApplication (ActivityThread.java:5815) bei android.app.ActivityThread.-wrap1 (unbekannte Quelle : 0) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1661) bei android.os.Handler .dispatchMessage (Handler.java:105) bei android.os.Looper.loop (Looper.java:164) bei android.app.ActivityThread.main (ActivityThread.java:6541) bei java.lang.reflect.Method .invoke (native Methode) bei com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) bei com.android.internal.os.WebViewZygoteInit.main (WebViewZygoteInit.java:121)

WebSettings settings = binding.landingWb.getSettings(); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
     settings.setSafeBrowsingEnabled(true); 
    } 
    //binding.loader.setVisibility(View.GONE); 
    settings.setJavaScriptEnabled(true); 
    binding.landingWb.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    binding.landingWb.setWebViewClient(new WebViewClient() { 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url != null) { 
       if (url.startsWith("whatsapp://")) { 
        view.getContext().startActivity(
          new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
        return true; 
       } else { 
        view.loadUrl(url); 
        return true; 
       } 

      } else { 
       binding.loader.setVisibility(View.GONE); 
       return false; 
      } 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      binding.loader.setVisibility(View.GONE); 
     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      Log.d(TAG, "onReceivedError() called with: view = [" + view + "], errorCode = [" + errorCode + "], description = [" + description + "], failingUrl = [" + failingUrl + "]"); 
      binding.loader.setVisibility(View.GONE); 
     } 
    }); 
    binding.landingWb.setWebChromeClient(new WebChromeClient() { 
     @Override 
     public void onProgressChanged(WebView view, int newProgress) { 
      super.onProgressChanged(view, newProgress); 
      Log.e("CompetitionActivity","Progress: " + newProgress); 
     } 
    }); 
    binding.landingWb.loadUrl(url); 
+0

teilen Sie Ihren Webview-Code. –

+0

Ich habe den Code hinzugefügt. –

Antwort

4

die Vorbelastung von Schriften entfernen von

entfernen
+0

Vielen Dank. Es funktionierte nach dem Kommentieren dieser beiden Zeilen. –

0

Dies kann das Problem sein, ich bin nicht sicher, .. darüber mehr zu erforschen versuchen ....

Eine Funktion wurde in Android Nougat hinzugefügt, um die Chrome WebView als Standard WebView zu setzen und deaktivieren die Android System WebView App standardmäßig. Diese Funktion hilft den Benutzern, den Ressourcenbedarf des Android System WebView zu minimieren, wenn sie nicht verwendet wird. Gleichzeitig können Benutzer Chrome deaktivieren und zu einem nicht-Chrome WebView zurückkehren.

Auf Android Oreo-Geräten mit mehreren Benutzern, bei denen Chrome nicht für alle Benutzer aktiviert ist, stürzen Anwendungen beim Versuch, ein WebView aufzurufen, ab. Dieses Problem betrifft hauptsächlich Arbeitsprofile, da Chrome in diesen Profilen standardmäßig deaktiviert ist.

Verwandte Themen