Android Studio Web浏览器项目代码错误

时间:2017-05-30 13:12:11

标签: java android android-studio

我刚刚开发了我的第一个android web浏览器项目, 但它并不顺利。

我发现我的MainActivity出现了一些崩溃, 但我找不到它。

这是我的MainActivity中的java代码。

package org.thunderdot.station;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText editText_search = (EditText) findViewById(R.id.EditText_Uri);
    WebView webView = (WebView) findViewById(R.id.webview);
    ImageButton button_search = (ImageButton) findViewById(R.id.ImageButton_Search);
    ImageButton button_more = (ImageButton) findViewById(R.id.ImageButton_More);
WebSettings webSettings = webView.getSettings();
String default_url = "https://www.google.com";

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webView.setWebViewClient(new WebViewClient());

    webSettings.setJavaScriptEnabled(true);
    webSettings.setLoadsImagesAutomatically(true);

    webView.loadUrl(default_url);
}

public void onClick_button_search() {

    String url = editText_search.getText().toString();

    if(url.isEmpty()) {
        Toast.makeText(getApplicationContext(), "Please Input URL First!", Toast.LENGTH_SHORT).show();
    }
    else {
        webView.loadUrl(url);
    }
}

这是我的activity_main.xml来源。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="org.thunderdot.station.MainActivity"
android:focusable="true"
android:focusableInTouchMode="true">

<LinearLayout
    android:layout_width="368dp"
    android:layout_height="60dp"
    tools:layout_editor_absoluteY="8dp"
    tools:layout_editor_absoluteX="8dp"
    android:gravity="center"
    android:id="@+id/LinerLayout_Search" >

    <EditText
        android:id="@+id/EditText_Uri"
        android:layout_width="210dp"
        android:layout_height="50dp"
        android:hint="Input Url or Text"
        android:inputType="textUri"
        android:onClick="onClick_button_search"/>

    <Space
        android:layout_width="5dp"
        android:layout_height="0dp" />

    <ImageButton
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@mipmap/ic_launcher"
        android:id="@+id/ImageButton_Search"/>

    <Space
        android:layout_width="5dp"
        android:layout_height="0dp" />

    <ImageButton
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@mipmap/ic_launcher"
        android:id="@+id/ImageButton_More"/>

</LinearLayout>

<WebView
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_below="@id/LinerLayout_Search"
   android:id="@+id/webview"> </WebView>

</RelativeLayout>

这也是我的logcat。

05-31 12:20:14.241 2709-2709/org.thunderdot.station I/art: Not late-enabling -Xcheck:jni (already on)
05-31 12:20:14.241 2709-2709/org.thunderdot.station W/art: Unexpected CPU variant for X86 using defaults: x86
05-31 12:20:14.431 2709-2709/org.thunderdot.station W/System: ClassLoader referenced unknown path: /data/app/org.thunderdot.station-1/lib/x86
05-31 12:20:14.441 2709-2709/org.thunderdot.station I/InstantRun: starting instant run server: is main process
05-31 12:20:14.542 2709-2709/org.thunderdot.station W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
05-31 12:20:14.661 2709-2729/org.thunderdot.station I/OpenGLRenderer: Initialized EGL, version 1.4
05-31 12:20:14.661 2709-2729/org.thunderdot.station D/OpenGLRenderer: Swap behavior 1
05-31 12:20:14.661 2709-2729/org.thunderdot.station W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
05-31 12:20:14.661 2709-2729/org.thunderdot.station D/OpenGLRenderer: Swap behavior 0
05-31 12:21:41.277 2709-2709/org.thunderdot.station D/AndroidRuntime: Shutting down VM


                                                                      --------- beginning of crash
05-31 12:21:41.278 2709-2709/org.thunderdot.station E/AndroidRuntime: FATAL EXCEPTION: main
                                                                      Process: org.thunderdot.station, PID: 2709
                                                                      java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.thunderdot.station/org.thunderdot.station.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2567)
                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                          at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                          at android.os.Looper.loop(Looper.java:154)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
                                                                          at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:120)
                                                                          at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:151)
                                                                          at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:31)
                                                                          at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:55)
                                                                          at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:33)
                                                                          at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:33)
                                                                          at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)
                                                                          at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
                                                                          at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
                                                                          at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
                                                                          at org.thunderdot.station.MainActivity.<init>(MainActivity.java:14)
                                                                          at java.lang.Class.newInstance(Native Method)
                                                                          at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2557)
                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                                                                          at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                          at android.os.Looper.loop(Looper.java:154) 
                                                                          at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                                          at java.lang.reflect.Method.invoke(Native Method) 
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

这是调用MainActivity的java源代码。

package org.thunderdot.station;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class TitleScreen extends AppCompatActivity {

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

        Button button = (Button)findViewById(R.id.Button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(view.getContext(), MainActivity.class);
                startActivity(intent);
            }
        });
    }
}

0 个答案:

没有答案