2017-11-29 9 views
2

Oreo 8でWebviewを開いているときにこのエラーが発生します。このデバイスはGoogle Pixelです。親切にも同じことを私に助けてください。追加情報が必要な場合はお知らせください。OreoのWebviewが動作しない

プロセス:com.android.chrome:sandboxed_process0、PID:16787 android.content.res.Resources $ NotFoundException:アレイのリソースID番号android.content.res.Resources.obtainTypedArrayで0x7f030010 (Resources.java :617) android.app.ActivityThread.-WRAP1(不明なソースでandroid.app.ActivityThread.handleBindApplication(ActivityThread.java:5815) でandroid.content.res.Resources.preloadFonts(Resources.java:379) で:0) android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1661) android.os.Handler .dispatchMessage(Handler.java:105) とandroid.os.Looper.loop(Looper.java:164) とandroid.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method com.android.internal.os.WebViewZygoteInit.mainでcom.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240) (WebViewZygoteInit.java:121)

で.invoke(ネイティブメソッド)
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

あなたのwebviewコードを共有します。 –

+0

私はコードを追加しました。 –

答えて

4

を除去することにより、フォントのプリロードを削除します
+0

ありがとうございました。これらの2つの行にコメントした後に機能しました。 –

0

これは私がわからないんだけど、問題になる可能性が.. が、これについての詳細を検索するには試してみてください....

機能はデフォルトのWebViewとしてクロムのWebViewを設定し、無効にするにはAndroidのヌガーに追加されましたデフォルトでは、AndroidシステムのWebViewアプリです。この機能は、使用していないときにAndroid System WebViewのリソースフットプリントを最小限に抑えると同時に、ユーザーがChromeを無効にしてChrome以外のWebViewに戻せるようにするのに役立ちました。

複数のユーザーがいるAndroid Oreoデバイスでは、Chromeがすべてのユーザーに対して有効になっていないため、WebViewを呼び出そうとするとアプリケーションがクラッシュします。この問題は主に仕事用プロファイルに当てはまります。なぜなら、これらのプロファイルではChromeはデフォルトで無効になっているからです。

関連する問題