我建立了一个web应用程序,想要创建一个android应用程序,它有一个显示我的web应用程序的web视图。在遵循谷歌开发人员创建应用程序的说明后,我成功地将它安装在我的手机与android 5.1.1。

然而,当我第一次运行应用程序时,webview显示了消息:

网页不可用 无法加载[Lorem Ipsum URL]的网页,原因如下: net:: ERR_CACHE_MISS


我通过修改AndroidManifest.xml解决了这个问题。

旧:<uses-permission android:name="android.permission.internet"/> new: <uses-permission android:name="android.permission. internet "/>


我尝试了上述解决方案,但以下代码帮助我关闭这个问题。

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}

对于任何与互联网相关的东西,你的应用程序必须在manifest文件中具有互联网权限。我通过在AndroidManifest.xml中添加权限解决了这个问题

<uses-permission android:name="android.permission.INTERNET" />

还要确保你的代码setBlockNetworkLoads没有true

webView.getSettings().setBlockNetworkLoads (false);

Use

if (Build.VERSION.SDK_INT >= 19) {
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    }

它应该能解决这个错误。


答案组装!我只是想把所有的答案结合成一个全面的答案。

1. 检查是否<uses-permission android:name="android.permission "。INTERNET" />出现在manifest.xml中。确保它嵌套在<manifest>而不是<application>之下。感谢sajid45和Liyanis Velazquez

2. 确保你使用的是<uses-permission android:name="android.permission "。而不是已弃用的<uses-permission android:name="android.permission. INTERNET"/> . INTERNET。非常感谢alan_shi和creos。

3.如果最低版本低于KK,请检查是否有

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}

or

if (Build.VERSION.SDK_INT >= 19) {
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}

因为只有在KK (SDK 19)中才添加了适当的webview。感谢Devavrata, Mike ChanSeong Kim和Liyanis Velazquez

4. 确保你没有webView.getSettings()。setBlockNetworkLoads(假);。感谢TechNikh指出这一点。

5. 如果所有这些都失败了,请确保您的Android Studio, Android SDK和模拟器图像(如果您正在使用的话)已更新。如果你仍然遇到这个问题,只要打开一个新问题,并在你的URL下面发表评论。


我遇到了一个类似的问题,那只是因为额外的空格:

< uses-permission android: name = " android.permission。互联网" / >

当它被移除的时候很好:

< uses-permission android: name = " android.permission.INTERNET " / >