Android的加载缓存只有不工作。显示的WebView当前离线 [英] Android Load Cache Only is not working. Show WebView offline
问题描述
我想通过展示一些的WebView网页没有连接到互联网。 我得到一个空指针错误,如果没有对互联网的连接。如果有,它正在连接。所以,我认为这是东西
webView.getSettings()setCacheMode(WebSettings.LOAD_CACHE_ONLY)。
webView.loadUrl(http://www.google.de);
请帮助我。我已经检查,如果AppCachePath是正确的getCacheDir(); 非常感谢
webView.getSettings()setJavaScriptEnabled(真)。
webView.getSettings()setDomStorageEnabled(真)。
webView.getSettings()setAppCacheMaxSize(1024 * 1024 * 8)。
webView.getSettings()setAppCachePath(/数据/数据/ de.app /缓存)。
。webView.getSettings()setAllowFileAccess(真正的);
webView.getSettings()setAppCacheEnabled(真)。
webView.setWebChromeClient(新WebChromeClient(){
@覆盖
公共无效onReachedMaxAppCacheSize(长spaceNeeded,长totalUsedQuota,
WebStorage.QuotaUpdater quotaUpdater)
{
quotaUpdater.updateQuota(spaceNeeded * 2);
}
});
ConnectivityManager厘米=
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
如果(cm.getActiveNetworkInfo()。isConnected()==真)
{
。webView.getSettings()setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.loadUrl(http://www.google.de);
}
其他{
。webView.getSettings()setCacheMode(WebSettings.LOAD_CACHE_ONLY);
webView.loadUrl(http://www.google.de);
}
12月11日至5日:46:20.213:WARN / dalvikvm(15681):主题ID = 3:线程退出与未捕获的异常(组= 0x4001b180)
十二月11号至五日:46:20.213:ERROR / AndroidRuntime(15681):未捕获的处理程序:螺纹主力退出,由于未捕获的异常
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):java.lang.RuntimeException的:无法启动的活动ComponentInfo {de.webstest / de.webstest.webbrowser}:显示java.lang.NullPointerException
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.ActivityThread.access $ 2200(ActivityThread.java:119)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1863)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.os.Handler.dispatchMessage(Handler.java:99)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.os.Looper.loop(Looper.java:123)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.ActivityThread.main(ActivityThread.java:4363)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在java.lang.reflect.Method.invokeNative(本机方法)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在java.lang.reflect.Method.invoke(Method.java:521)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:862)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在dalvik.system.NativeStart.main(本机方法)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):由:显示java.lang.NullPointerException
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在de.webstest.webbrowser.onCreate(webbrowser.java:87)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
十二月11号至五日:46:20.323:ERROR / AndroidRuntime(15681):11 ...更多
一两件事情正在发生。无论是厘米
为空或 cm.getActiveNetworkInfo()
则返回null。我猜这是 cm.getActiveNetworkInfo()
。如果我是正确的,然后更改
如果(cm.getActiveNetworkInfo()。isConnected()==真)
到
如果(cm.getActiveNetworkInfo()= NULL和放大器;!&安培; cm.getActiveNetworkInfo()isConnected()==真)
应该解决您的问题。
I'm trying to show some webpages via webview without connecting to the internet. I'm getting a Null-Pointer Error if there is no connection to the internet. If there is a connection it is working. So I think it's something with
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);
webView.loadUrl("http://www.google.de");
Please help me. I already checked if the AppCachePath is correct with getCacheDir(); Thanks a lot
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheMaxSize(1024*1024*8);
webView.getSettings().setAppCachePath("/data/data/de.app/cache");
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota,
WebStorage.QuotaUpdater quotaUpdater)
{
quotaUpdater.updateQuota(spaceNeeded * 2);
}
});
ConnectivityManager cm =
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo().isConnected()== true)
{
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.loadUrl("http://www.google.de");
}
else{
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);
webView.loadUrl("http://www.google.de");
}
11-05 12:46:20.213: WARN/dalvikvm(15681): threadid=3: thread exiting with uncaught exception (group=0x4001b180)
11-05 12:46:20.213: ERROR/AndroidRuntime(15681): Uncaught handler: thread main exiting due to uncaught exception
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.webstest/de.webstest.webbrowser}: java.lang.NullPointerException
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.os.Looper.loop(Looper.java:123)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.ActivityThread.main(ActivityThread.java:4363)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at java.lang.reflect.Method.invokeNative(Native Method)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at java.lang.reflect.Method.invoke(Method.java:521)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at dalvik.system.NativeStart.main(Native Method)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): Caused by: java.lang.NullPointerException
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at de.webstest.webbrowser.onCreate(webbrowser.java:87)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-05 12:46:20.323: ERROR/AndroidRuntime(15681): ... 11 more
One of two things is happening. Either cm
is null or cm.getActiveNetworkInfo()
is returning null. I'm guessing it's cm.getActiveNetworkInfo()
. If I'm right, then changing
if(cm.getActiveNetworkInfo().isConnected()== true)
to
if(cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected() == true)
should fix your problem.
这篇关于Android的加载缓存只有不工作。显示的WebView当前离线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!