Android Studio中WebView加载本地HTML文件报错net::ERR_FILE_NOT_FOUND
WebView加载assets中home.html报错net::ERR_FILE_NOT_FOUND的解决方法
问题描述
- 用WebView加载
index.html正常显示,但加载同目录下的home.html失败 - 点击
index.html内的跳转链接,弹出错误:
The web page at file:///android_asset/home.html could not be loaded because: net::ERR_FILE_NOT_FOUND'
- 已确认文件位置正确,直接用
loadUrl加载home.html也无效,同目录的CSS文件可正常识别
相关代码
MainActivity.java
package com.example; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/index.html"); } }
index.html
<html> <head> <link rel="stylesheet" type="text/css" href="./styles.css"> </head> <body> <div style="padding-top:20"><center><a href="home.html">Go to Home Page</a></center></div> </body> </html>
简单易懂的解决步骤
1. 核对文件名大小写
Android的assets目录对文件名大小写严格敏感,确保代码里写的home.html和实际文件名完全一致(比如不能是Home.html或HOME.HTML)。
2. 确认文件位置
右键点击Android Studio里的home.html,选择「Show in Explorer/Finder」,检查文件是否放在src/main/assets的根目录下,而不是子文件夹里。如果在子文件夹,要把链接改成对应路径(比如html/home.html),或者把文件移到根目录。
3. 清理重建项目
Android Studio的缓存可能导致文件没被正确打包:
- 点击顶部菜单栏的
Build→Clean Project - 接着点击
Build→Rebuild Project - 重新运行App测试
4. 添加本地文件访问权限(可选)
在webView.getSettings().setJavaScriptEnabled(true);后面添加一行代码,确保WebView能访问本地文件:
webView.getSettings().setAllowFileAccess(true);
5. 直接测试加载home.html
修改MainActivity的代码,直接加载home.html:
webView.loadUrl("file:///android_asset/home.html");
如果还是失败,回到步骤2和3,确认文件是否被正确打包进App。
内容的提问来源于stack exchange,提问作者Bewin
相关产品推荐
相关产品推荐

