WebView崩溃运行时

时间:2017-11-07 15:25:29

标签: android webview

我对此很新。只是想通过WebView显示一个网页,但它 在启动此特定活动时不断崩溃。请帮忙。 这是我的代码

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
import android.widget.Button;

public class vistaweb extends AppCompatActivity implements View.OnClickListener {

    String url= "https://myschoolserver.com/apps_login.php";


    WebView vWeb = (WebView) findViewById(R.id.MyWeb);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().hide();
        setContentView(R.layout.activity_vistaweb);




        vWeb.clearCache(true);
        vWeb.clearHistory();
        vWeb.getSettings().setJavaScriptEnabled(true);
       // vWeb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        vWeb.loadUrl(url);

        Button back = (Button)findViewById(R.id.back);
        Button forward = (Button)findViewById(R.id.forward);
        Button reload = (Button)findViewById(R.id.relode);

        back.setOnClickListener(this);
        forward.setOnClickListener(this);
        reload.setOnClickListener(this);


    }
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.back:
                vWeb.canGoBack();

                break;

            case R.id.forward:
                vWeb.canGoForward();
                break;

            case R.id.relode:
                vWeb.reload();
                break;
        }
    }
}

这是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.myschoolserver.myschoolserver_beta.vistaweb">

    <Button
        android:id="@+id/back"
        style="@style/Widget.AppCompat.Button.Small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="3dp"
        android:text="BACK"
        app:layout_constraintLeft_toLeftOf="parent"
        tools:layout_editor_absoluteY="461dp"
        android:layout_marginStart="3dp" />

    <Button
        android:id="@+id/relode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RELOAD"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        tools:layout_editor_absoluteY="462dp" />

    <Button
        android:id="@+id/forward"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Forward"
        tools:layout_editor_absoluteY="462dp"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent" />

    <WebView
        android:id="@+id/MyWeb"
        android:layout_width="0dp"
        android:layout_height="445dp"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="16dp"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

在启动时,我发现报告错误在第16行显示错误 WebView vWeb =(WebView)findViewById(R.id.MyWeb);

请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:0)

1.您应该使用findViewById方法拨打onCreate

2.因为您在vWeb方法中使用onClick。因此,您应将vWeb设置为全局变量。

3.不要忘记添加权限。

<uses-permission android:name="android.permission.INTERNET"/>

4.在代码中设置webView.setWebViewClientwebview.setWebChromeClient

private WebView vWeb;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_vistaweb);
    vWeb = (WebView) findViewById(R.id.MyWeb);
    ...
}