Webview从资源目录加载html

And*_*273 131 android

我正在尝试从assets目录加载一个html页面.我尝试了这个,但它失败了.

public class ViewWeb extends Activity {  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        WebView wv;  
        wv = (WebView) findViewById(R.id.webView1);  
        wv.loadUrl("file:///android_asset/aboutcertified.html");   // fails here
        setContentView(R.layout.webview);  
    }  
}
Run Code Online (Sandbox Code Playgroud)

我在LogCat中没有任何明显的错误...

Rob*_*ond 287

您在设置"内容"视图之前获取WebView,因此wv可能为null.

public class ViewWeb extends Activity {  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);
            setContentView(R.layout.webview);  
            WebView wv;  
            wv = (WebView) findViewById(R.id.webView1);  
            wv.loadUrl("file:///android_asset/aboutcertified.html");   // now it will not fail here
        }  
    }
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不再适用于honeycomp.达姆. (10认同)

dug*_*ggu 16

无论何时创建活动,都必须setcontentview在超级调用后添加(您的布局).因为setcontentview将xml绑定到您的活动中,这就是您获得的原因nullpointerexception.

 setContentView(R.layout.webview);  
 webView = (WebView) findViewById(R.id.webView1);
 wv.loadUrl("file:///android_asset/xyz.html");
Run Code Online (Sandbox Code Playgroud)


小智 5

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView wb = new WebView(this);
        wb.loadUrl("file:///android_asset/index.html");
        setContentView(wb);
    }


keep your .html in `asset` folder
Run Code Online (Sandbox Code Playgroud)

  • 这几乎与接受的答案相同 (5认同)
  • Andoid doc指的是`assets` https://developer.android.com/tools/projects/index.html在任何一种情况下均不起作用,除非我的资产文件夹位于`main`中当前的错误文件夹中 (2认同)