为什么Android WebView显示黑屏?

7

今天下午我一直在努力让WebView工作,但一直没有成功。以下是主类中的代码:

public class fkyougoogle extends Activity {
    /** Called when the activity is first created. */
 WebView webview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        // WORKS
        //webview.loadUrl("http://www.google.com");
        // DOESN'T WORK
        //webview.loadUrl("http://www.theregister.co.uk");
        //webview.loadData("<html><body>hello</body></html>", "text/html", "utf-8");
        //webview.loadDataWithBaseURL("fake://", "<html><body>hello</body></html>", "text/html", "utf-8", "http://www.theregister.co.uk/");

    }
}

这是谷歌的“Hello, Webview”示例。如果我使用WebView并尝试访问www.google.com,那么它可以正常工作。如果我尝试访问任何其他网站,包括loadData,则会失败,并且在模拟器中仅显示黑屏。最后我想从本地文件读取。

在清单标签下包含了

,XML架构与Hello Webview示例相同。

我是否漏掉了明显的东西? :(


这是针对最新的SDK和Google APIs的 :) - Biz
你尝试过注释掉调用 setJavaScriptEnabled 的语句吗? - CaseyB
当黑屏出现时,adb logcat 会显示什么? - Roman Nurik
3个回答

8
尝试更改
android:layout_width="wrap_content"
android:layout_height="wrap_content"

to

android:layout_width="fill_parent"
android:layout_height="fill_parent"

在您的main.xml文件中,顶层LinearLayout应该像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <WebView 
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

</LinearLayout>

我和发帖者遇到了同样的问题,这个方法解决了我的问题。谢谢 Tyler! - Carlos Rendon
3
您的意思是布局参数会影响WebView可以加载哪些URL,对吗? - Mathias Conradt
根据:ViewGroup.LayoutParams FILL_PARENT此值已在API Level 8中弃用,并被MATCH_PARENT替代。 - Yuriy Chernyshov

0

尝试使用UTF-8而不是utf-8来尝试您后两次的尝试。我使用相同的代码没有问题加载http://www.theregister.co.uk -- 尝试在内置浏览器应用程序中加载它,如果失败了,您可能遇到某种防火墙/代理问题。

这里有一些项目展示了WebView的简单用法,来自我的一本书。


0

我曾经遇到过类似的问题,WebView完全空白,但我的情况是由于缺少了android.permission.INTERNET uses-permission权限所导致的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接