Android Webview memberikan pesan net :: ERR_CACHE_MISS

152

Saya membangun aplikasi web dan ingin membuat aplikasi android yang memiliki tampilan web yang menunjukkan aplikasi web saya. Setelah mengikuti instruksi dari Google Developer untuk membuat aplikasi, saya berhasil menginstalnya di ponsel saya dengan Android 5.1.1.

Namun, ketika saya menjalankan aplikasi untuk pertama kalinya, tampilan web menampilkan pesan:

halaman web tidak tersedia

Halaman Web di [Lorem Ipsum URL] tidak dapat dimuat sebagai:

net :: ERR_CACHE_MISS

zehata
sumber
Mungkin tautan ini akan membantu Anda stackoverflow.com/questions/25664146/...
Bidhan

Jawaban:

334

Saya memecahkan masalah dengan mengubah AndroidManifest.xml.

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

alan shi
sumber
***, kau menyelamatkan hariku! Setelah meningkatkan ke Cordova 7.0.1, tidak ada XHR yang berfungsi. Saya menambahkan ini secara manual ke manifes dan ... boom! :)
Radacina
5
Tidak ada internet, tapi INTERNET! Yang besar! :)
Mike Keskinov
27

Saya mencoba solusi di atas, tetapi kode berikut membantu saya untuk menutup masalah ini.

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}
Mike ChanSeong Kim
sumber
Di mana ini Builddan mwebvars?
Michael Pacheco
@MichaelPacheco Build berasal dari Sistem Android dan mweb adalah objek tampilan web
Acauã Pitta
24

Untuk apa pun yang terkait dengan internet, aplikasi Anda harus memiliki izin internet di ManifestFile. Saya memecahkan masalah ini dengan menambahkan izin diAndroidManifest.xml

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

Jawaban terkumpul! Saya ingin menggabungkan semua jawaban menjadi satu jawaban yang komprehensif.

1. Periksa apakah <uses-permission android:name="android.permission.INTERNET" />ada manifest.xml. Pastikan bersarang di bawah <manifest>dan tidak<application> . Terima kasih kepada sajid45 dan Liyanis Velazquez

2. Pastikan Anda menggunakan <uses-permission android:name="android.permission.INTERNET"/>bukan yang sudah usang <uses-permission android:name="android.permission.internet"/>. Terima kasih banyak untuk alan_shi dan creos .

3. Jika versi minimum di bawah KK, pastikan Anda memilikinya

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

atau

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

karena tampilan web yang tepat hanya ditambahkan dalam KK (SDK 19). Terima kasih kepada Devavrata , Mike ChanSeong Kim dan Liyanis Velazquez

4. Pastikan Anda tidak memilikinya webView.getSettings().setBlockNetworkLoads (false);. Terima kasih kepada TechNikh untuk menunjukkan ini.

5. Jika semuanya gagal, pastikan Android Studio, Android SDK, dan gambar emulator Anda (jika Anda menggunakannya) diperbarui. Dan jika Anda masih mengalami masalah, buka saja pertanyaan baru dan berikan komentar di bawah ini ke URL Anda.

zehata
sumber
Hai, zehata. Tolong jangan menambahkan komentar atau saran untuk posting. Sebagian besar pembaca bahkan tidak masuk, apalagi memilih, jadi itu bukan informasi yang berguna bagi sebagian besar pembaca. Biarkan orang memilih secara organik.
Halfer
8

Menggunakan

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

Seharusnya mengatasi kesalahan.

Devavrata
sumber
Jawaban ini banyak membantu saya, Terima kasih. Tapi saya menggunakanWebSettings.LOAD_NO_CACHE
Alexander Skvortsov
6

Pastikan juga kode Anda tidak benar untuk setBlockNetworkLoads

webView.getSettings().setBlockNetworkLoads (false);
TechNikh
sumber