为啥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)不显示(黑屏)