尝试运行WebView应用程序时出错

时间:2014-06-13 03:43:06

标签: android webview

我正在创建一个应用程序,我必须使用webView并在assets文件夹中显示保存在应用程序中的HTML文件。这是我的mainActivity代码。

public class MainActivity extends Activity {


WebView browser;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    browser = (WebView)findViewById(R.id.wv1);
    browser.loadUrl("file:///android_asset/test.htm");
    WebSettings webSettings = browser.getSettings();
    browser.getSettings().setJavaScriptEnabled(true);
      setContentView(browser);

}

}

这是我的xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Test Application" 
    android:gravity="center_horizontal">

 </TextView>
<WebView 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/wv1"
    android:layout_marginTop="3dp">

</WebView>

当我试图运行此应用程序时,它会崩溃.. this is the LogCat of errors when i run the application

任何人都可以帮助我找出我正在做的错误。

2 个答案:

答案 0 :(得分:3)

您无法致电setContentView(browser),因为browser已经是另一个视图的孩子 - LinearLayout

如果您不需要其他视图,只需更改布局xml文件并将其删除,只留下WebView。否则,请删除setContentView(browser)行。

答案 1 :(得分:0)

您已经两次使用setContentView()并提供已有父级的视图。这就是为什么它会给你一个错误call removeView() on the child's parent first。所以删除setContentView(browser)

您的代码应如下所示。

public class MainActivity extends Activity {


WebView browser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        browser = (WebView)findViewById(R.id.wv1);
        browser.loadUrl("file:///android_asset/test.htm");
        browser.getSettings().setJavaScriptEnabled(true);

    }

}