Android Webviewがnet :: ERR_CACHE_MISSメッセージを表示する


152

私はWebアプリを作成し、自分のWebアプリを表示するWebビューを備えたAndroidアプリを作成したいと考えています。Googleデベロッパーの指示に従ってアプリを作成した後、Android 5.1.1を搭載したスマートフォンにアプリを正常にインストールしました。

ただし、アプリを初めて実行すると、webviewに次のメッセージが表示されます。

Webページは利用できません

[Lorem Ipsum URL]のWebページを次のように読み込めませんでした:

ネット:: ERR_CACHE_MISS


たぶん、このリンクはあなたが助けるstackoverflow.com/questions/25664146/...
Bidhan

回答:


332

を変更して問題を解決しましたAndroidManifest.xml

古い:<uses-permission android:name="android.permission.internet"/>
新しい:<uses-permission android:name="android.permission.INTERNET"/>


男、あなたは私の日を救った!Cordova 7.0.1へのアップグレード後、XHRは機能しませんでした。私はこれを手動でマニフェストに追加して...ブーム!:)
Radacina

5
インターネットなし、しかしインターネット!BIG one!:)
マイク・ケスキノフ2018

27

上記の解決策を試しましたが、次のコードでこの問題を解決できます。

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

これBuildmweb変数はどこにありますか?
Michael Pacheco

@MichaelPachecoビルドは、Androidのシステムからのものであり、mwebは、WebViewのオブジェクトです
Acauãピッタ

24

インターネットに関連するものについては、アプリはManifestFileでインターネットアクセス許可を持っている必要があります。に権限を追加することでこの問題を解決しましたAndroidManifest.xml

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

18

回答が集まりました!すべての答えを1つの包括的な答えにまとめたいと思っていました。

1.<uses-permission android:name="android.permission.INTERNET" />がに存在するかどうかを確認しmanifest.xmlます。<manifest>ではなく下にネストされていることを確認してください<application>sajid45Liyanis Velazquezに感謝

2.<uses-permission android:name="android.permission.INTERNET"/>非推奨のの代わりにを使用していることを確認してください<uses-permission android:name="android.permission.internet"/>。多くのおかげでalan_shiクレオス

3.最小バージョンがKK未満の場合は、

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

または

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

適切なWebViewがKK(SDK 19)でのみ追加されているためです。DevavrataMike ChanSeong KimLiyanis Velazquezのおかげで

4.がないことを確認しますwebView.getSettings().setBlockNetworkLoads (false);。これを指摘してくれたTechNikhに感謝します。

5.他の方法がすべて失敗した場合は、Android Studio、Android SDK、およびエミュレーターイメージ(使用している場合)が更新されていることを確認してください。それでも問題が解決しない場合は、新しい質問を開いて、URLに以下のコメントを入力してください。


こんにちは。投稿に投票のコメントやアドバイスを追加しないでください。ほとんどの読者はサインインすらしておらず、投票はもちろんのこと、ほとんどの読者にとって有益な情報ではありません。人々に有機的に投票させましょう。
半分

8

使用する

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

エラーを解決するはずです。


この回答はとても役に立ちました。ありがとう。でも私はWebSettings.LOAD_NO_CACHE
Alexander Skvortsov

6

また、コードがsetBlockNetworkLoadsに該当しないことを確認してください

webView.getSettings().setBlockNetworkLoads (false);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.