为啥Android WebView会显示黑屏?

Posted

技术标签:

【中文标题】为啥Android WebView会显示黑屏?【英文标题】:Why does Android WebView display a black screen?为什么Android WebView会显示黑屏? 【发布时间】:2010-12-31 04:34:54 【问题描述】:

今天下午我一直在用头撞墙,试图让 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/");

    

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

包含在 manifest 标记下,XML 架构与 Hello Webview 示例相同。

我在这里遗漏了一些明显的东西吗? :(

【问题讨论】:

这是最新的 SDK 和 Google API :) 您是否尝试过注释掉对 setJavaScriptEnabled 的调用? 黑屏出现时adb logcat 说什么? 【参考方案1】:

尝试改变

android:layout_
android:layout_

android:layout_
android:layout_

在您的 main.xml ***线性布局中

应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical">

    <WebView 
        android:id="@+id/webview"
        android:layout_
        android:layout_
    />

</LinearLayout>

【讨论】:

我遇到了和发帖人一样的问题,这为我解决了。谢谢泰勒! 你的意思是布局参数对webview可以加载哪些url有影响? 根据:ViewGroup.LayoutParams FILL_PARENT 此值从 API 级别 8 开始已弃用,并由 MATCH_PARENT 取代【参考方案2】:

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

Here are a few projects 演示 WebView 的简单用法,来自我的一本书。

【讨论】:

【参考方案3】:

我遇到了 WebView 完全空白的类似问题,但在我的情况下,它是由缺少 android.permission.INTERNET 使用权限引起的。

【讨论】:

以上是关于为啥Android WebView会显示黑屏?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决在android开发中WebView在线播放视频黑屏啊?

将 Youtube 视频嵌入到 WebView(Appcelerator)不显示(黑屏)

android system webview是啥

为啥android webview中的css属性会发生变化

为啥Bitmap to Base64 String在android的webview上显示黑色背景?

WebView 显示黑屏