Android Webview는 net :: ERR_CACHE_MISS 메시지를 제공합니다.


152

웹 앱을 만들었고 내 웹 앱을 보여주는 webview가있는 Android 앱을 만들고 싶습니다. Google 개발자의 안내에 따라 앱을 만든 후 Android 5.1.1을 사용하여 휴대 전화에 앱을 성공적으로 설치했습니다.

그러나 앱을 처음 실행하면 웹보기에 다음 메시지가 표시됩니다.

페이지를 사용할 수 없습니다

[Lorem Ipsum URL]의 웹 페이지를 다음과 같이로드 할 수 없습니다 :

net :: ERR_CACHE_MISS


답변:


333

내을 변경하여 문제를 해결했습니다 AndroidManifest.xml.

오래된 : <uses-permission android:name="android.permission.internet"/>
새로운 :<uses-permission android:name="android.permission.INTERNET"/>


넌 내 하루를 구했어! Cordova 7.0.1로 업그레이드 한 후 XHR이 작동하지 않았습니다. 나는 이것을 매니페스트에 수동으로 추가하고 ... 붐! :)
Radacina

5
인터넷은 없지만 인터넷! 큰 하나! :)
Mike Keskinov

27

위의 솔루션을 시도했지만 다음 코드는이 문제를 해결하는 데 도움이됩니다.

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

이것 Buildmwebvars 는 어디에 있습니까 ?
Michael Pacheco

@MichaelPacheco Build는 Android 시스템에서 제공되며 mweb은 webview 객체입니다
Acauã Pitta

24

인터넷과 관련된 모든 것을 위해서는 ManifestFile에서 인터넷 권한이 앱에 있어야합니다. 에 권한을 추가 하여이 문제를 해결했습니다.AndroidManifest.xml

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

18

답을 모았다! 모든 답변을 하나의 포괄적 인 답변으로 결합하고 싶었습니다.

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_shicreos 덕분에 많이 있습니다.

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);
}

적절한 웹뷰는 KK (SDK 19)에만 추가되기 때문입니다. Devavrata , Mike ChanSeong KimLiyanis Velazquez 덕분에

4. 당신이 없는지 확인하십시오 webView.getSettings().setBlockNetworkLoads (false);. 이것을 지적 해준 TechNikh 에게 감사합니다 .

5. 다른 모든 방법이 실패하면 Android Studio, Android SDK 및 에뮬레이터 이미지 (사용중인 경우)가 업데이트되었는지 확인하십시오. 그래도 문제가 해결되지 않으면 새 질문을 열고 아래 URL에 의견을 보내십시오.


안녕하세요 제 하타. 투표 의견이나 조언을 게시물에 추가하지 마십시오. 대부분의 독자는 투표하지 않고 로그인조차하지 않으므로 대부분의 독자에게 유용한 정보가 아닙니다. 사람들이 유기적으로 투표하도록하십시오.
halfer

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.