Appcache en Android Webview no descargar fuentes

Sé que el appcache de mi aplicación web funciona bien porque lo he probado en Chrome, incluso en Chrome para Android funciona, pero no cuando lo carga en mi aplicación de Android desde una vista web. Tengo los siguientes ajustes:

myWebView = (WebView) v.findViewById(R.id.webView); WebSettings webSettings = myWebView.getSettings(); webSettings.setDomStorageEnabled(true); webSettings.setJavaScriptEnabled(true); webSettings.setSupportMultipleWindows(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webSettings.setAppCacheMaxSize(1024*1024*16); String appCachePath = getActivity().getApplicationContext().getCacheDir().getAbsolutePath(); webSettings.setAppCachePath(appCachePath); webSettings.setAllowFileAccess(true); webSettings.setAppCacheEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webSettings.setDatabaseEnabled(true); String databasePath = "/data/data/" + getActivity().getPackageName() + "/databases/"; webSettings.setDatabasePath(databasePath); webSettings.setGeolocationEnabled(true); webSettings.setSaveFormData(true); 

Pero al cargar la aplicación, en logcat puedo leer lo siguiente

10-15 01: 21: 43.815: E / SQLiteLog (14278): (1) no hay tabla: CacheGroups 10-15 01: 21: 43.815: D / WebKit (14278): ERROR: 10-15 01: 21: 43.815 : D / WebKit (14278): Almacenamiento de caché de la aplicación: no se pudo ejecutar la instrucción "DELETE FROM CacheGroups" error "no such table: CacheGroups" 10-15 01: 21: 43.815: D / WebKit (14278): external / webkit / Source /WebCore/loader/appcache/ApplicationCacheStorage.cpp (558): bool WebCore :: ApplicationCacheStorage :: executeSQLCommand (const WTF :: String &) 10-15 01: 21: 43.815: E / SQLiteLog (14278): (1) no such : C: 10/30 01: 21: 43.815: D / WebKit (14278): Almacenamiento de caché de aplicaciones: no se pudo ejecutar la instrucción "BORRAR DE cachés" Error "no such tabla: Caches" 10-15 01: 21: 43.815: D / WebKit (14278): external / webkit / Source / WebCore / loader / appcache / ApplicationCacheStorage.cpp (558): bool WebCore :: ApplicationCacheStorage :: EjecutarSQLCommand (const WTF :: String &) 10-15 01: 21: 43.815: E / SQLiteLog (14278): (1) ninguna tabla: Orígenes 10-15 01: 21: 43.815: D / WebKit (14278): ERROR: 10-15 01: 21: 43.815: D / WebKit (14278): Almacenamiento de caché de aplicaciones: falló ejecutar la instrucción "DELETE FROM Origins" error "no such table: Origins" 10-15 01 : 21: 43.815: D / WebKit (14278): external / webkit / Source / WebCore / loader / appcache / ApplicationCacheStorage.cpp (558): bool WebCore :: ApplicationCacheStorage :: executeSQLCommand (const WTF :: String &) 10-15 01 : 21: 43.815: E / SQLiteLog (14278): (1) ninguna tabla: DeletedCacheResources

Y, obviamente, AppCache no funciona = / ¿Estoy haciendo algo mal? ¡Gracias!

Configure db antes de appcache y domstore, configure cualquier "parámetro" como set * Path () / set * Size () antes de set * Enabled ()

Al lado de eso, podría no ser una buena idea si apila dos cachés gestionados independientemente entre sí cuando se usa

GetActivity (). GetApplicationContext (). GetCacheDir (). GetAbsolutePath ()

Como el directorio donde el gestor de caché de la webview debería almacenar sus datos

Cuando el administrador de caché de la actividad decide eliminar un archivo creado por el gestor de caché de la vista web, el gestor de caché de la vista web no es notificado y puede depender más de su existencia

Podría funcionar durante mucho tiempo, pero algún día podría convertirse en un error alterno que es difícil de identificar

Estos son los ajustes que funcionan para mí:

 CookieSyncManager.createInstance(contextForDialog); webView = (WebView) findViewById(R.id.webView1); WebSettings settings = webView.getSettings(); settings.setRenderPriority(RenderPriority.HIGH); settings.setCacheMode(WebSettings.LOAD_DEFAULT); settings.setSaveFormData(true); settings.setLoadsImagesAutomatically(true); settings.setJavaScriptEnabled(true); settings.setDatabaseEnabled(true); settings.setDomStorageEnabled(true); settings.setAppCacheMaxSize(1024*1024*1024*8); String sDataPath = context.getDir("database", Context.MODE_PRIVATE).getPath(); settings.setDatabasePath(sDataPath); settings.setAppCachePath(sDataPath); settings.setAllowFileAccess(true); settings.setAppCacheEnabled(true); settings.setAllowFileAccess(true); settings.setGeolocationEnabled(true); settings.setSavePassword(true); webView.setFocusable(true); webView.setFocusableInTouchMode(true); settings.setDatabaseEnabled(true); settings.setAllowContentAccess(true); settings.setLoadsImagesAutomatically(true); webView.addJavascriptInterface(this, "AndroidInterface"); WebView.setWebViewClient(new routeNavClient()); webView.setWebChromeClient(new webChromeClient()); CookieManager c = CookieManager.getInstance(); c.setAcceptCookie(true); 
  • Android WebView PictureListener Deprecated - ¿Todavía no hay alternativa?
  • Flash dentro de Android WebView - ¿Cómo configuro la pantalla completa de forma automática?
  • WebView saltar para anclar utilizando loadDataWithBaseUrl
  • "Hola, WebView" tutorial abre la dirección solicitada en el navegador de Android y no en mi webview
  • OnRecivedError no muestra la página de error personalizada
  • WebViewClient que no llama shouldOverrideUrlLoading
  • Phonegap uso de la aplicación android cpu en el fondo
  • Bloqueo de hilo principal de Android que bloquea hilo de WebView
  • ERROR / Web Console: Uncaught Error: Demasiado tiempo pasado en el controlador de descarga
  • WebView causando TypeError no capturado al cargar www.google.com
  • Colocación de contenido HTML en dos columnas dentro de WebView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.