studio sistema que permisos pasa nougat desinstalo descargar como activar android webview android-7.0-nougat

sistema - sdk android nougat



WebView se cuelga cargando videos para Android 7.0 (0)

He estado investigando este tema durante algunos días y no he podido resolverlo. El problema que estoy teniendo con WebViews es que cuando cargo un video vimeo, se produce un error con este error:

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:1181) at org.chromium.android_webview.DefaultVideoPosterRequestHandler$1.run(DefaultVideoPosterRequestHandler.java:39) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Ahora, lo extraño es que esto está sucediendo en Anroid 7.0 y no en algo inferior a Android 4.4 (no tiene dispositivos físicos para 5.0 o 6.0 para probar).

Aquí está mi código que estoy ejecutando para renderizar el fragmento:

public class FragmentWebView extends Fragment{ protected WebView myWebView; private String title, url, message; private boolean isOffline; View vWebView; ViewFinder viewPullDowns; SwipeRefreshLayout srlWebview; protected void setTitle(String title) { this.title = title; } protected void setUrl(String url) { this.url = url; } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { vWebView = inflater.inflate(R.layout.fragment_web_frame, container, false); ((MainActivity)getActivity()).setToClose(); ((MainActivity)getActivity()).setTitle(title); init(); return vWebView; } private void init() { viewPullDowns = new ViewFinder((ViewGroup)vWebView, "pulldown"); srlWebview = (SwipeRefreshLayout) vWebView.findViewById(R.id.srl_fwf_webview); if(message == null) { message = "Unable to connect"; } initWebView(); srlWebview.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { if(url != null) { myWebView.loadUrl(url); } } }); } private void initWebView() { myWebView = (WebView) vWebView.findViewById(R.id.webview); if(url != null) { try { WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setAllowContentAccess(true); myWebView.setWebViewClient(new WebViewClient()); myWebView.loadUrl(url); } catch (NullPointerException e) { } catch (Exception e) { } }else{ initOffline(); } } protected void initOffline() { myWebView.setBackgroundColor(getResources().getColor(R.color.colorTransparent)); viewPullDowns.setAllViewsVisibility(View.VISIBLE); ((MainActivity)getActivity()).showMessageOnBottom(message, R.color.colorError); ((MainActivity)getActivity()).hideSubmenu(); isOffline = true; srlWebview.setRefreshing(false); } }

Este error ocurre ocasionalmente y si desinstalo mi aplicación, comenzará a funcionar nuevamente. Parece que WebView está almacenando en caché un objeto nulo y luego cargándolos (no está 100% seguro de eso). ¿Alguien más ha experimentado este problema antes o ha buscado en bibliotecas alternativas que admitan explorar la web dentro de un fragmento?