Android Webview ให้ข้อความ net :: ERR_CACHE_MISS


152

ฉันสร้างเว็บแอพขึ้นมาแล้วและต้องการสร้างแอพ Android ที่มีมุมมองเว็บที่แสดงแอปพลิเคชันเว็บของฉัน หลังจากทำตามคำแนะนำจากนักพัฒนาซอฟต์แวร์ของ Google เพื่อสร้างแอพฉันติดตั้งบนโทรศัพท์ด้วย Android 5.1.1 ได้สำเร็จ

อย่างไรก็ตามเมื่อฉันรันแอพเป็นครั้งแรก webview จะแสดงข้อความ:

หน้าเว็บไม่สามารถใช้ได้

ไม่สามารถโหลดเว็บเพจที่ [Lorem Ipsum URL] เป็น:

สุทธิ :: ERR_CACHE_MISS


บางทีลิงค์นี้จะช่วยคุณstackoverflow.com/questions/25664146/…
Bidhan

คำตอบ:


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

ที่นี่Buildและmwebvars อยู่ที่ไหน?
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" /> ตรวจสอบให้แน่ใจว่ามันซ้อนอยู่และไม่ได้ ขอบคุณsajid45และLiyanis Velazquezmanifest.xml<manifest><application>

2.ตรวจสอบให้แน่ใจว่าคุณกำลังใช้แทนการเลิกใช้<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.internet"/>ขอบคุณมากที่จะalan_shiและcreos

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) เท่านั้น ขอบคุณDevavrata , Mike ChanSeong KimและLiyanis 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.