Java 登录持续崩溃

Java 登录持续崩溃,java,android,Java,Android,我的应用程序大部分时间都在运行。 唯一的问题是:我希望在主窗口之前有一个登录屏幕。 包含了意图内容,但登录将崩溃 我不知道我到底做错了什么。我还在学习使用调试器。MainActivity类将毫无问题地工作 坠机报告说: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.cris.zeiterfassungv2, PID: 19716 java.lang.RuntimeE

我的应用程序大部分时间都在运行。 唯一的问题是:我希望在主窗口之前有一个登录屏幕。 包含了意图内容,但登录将崩溃 我不知道我到底做错了什么。我还在学习使用调试器。MainActivity类将毫无问题地工作

坠机报告说:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.cris.zeiterfassungv2, PID: 19716
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cris.zeiterfassungv2/com.example.cris.zeiterfassungv2.login}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setVisibility(int)' on a null object reference
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
                  at android.app.ActivityThread.-wrap11(Unknown Source:0)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
                  at android.os.Handler.dispatchMessage(Handler.java:106)
                  at android.os.Looper.loop(Looper.java:164)
                  at android.app.ActivityThread.main(ActivityThread.java:6494)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setVisibility(int)' on a null object reference
                  at com.example.cris.zeiterfassungv2.login.onCreate(login.java:34)
                  at android.app.Activity.performCreate(Activity.java:6999)
                  at android.app.Activity.performCreate(Activity.java:6990)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
                  at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
                  at android.os.Handler.dispatchMessage(Handler.java:106) 
                  at android.os.Looper.loop(Looper.java:164) 
                  at android.app.ActivityThread.main(ActivityThread.java:6494) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
我的login.java是

package com.example.MrX.zeiterfassungv2;


    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.View;

    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;


public class login extends Activity  {
Button b1,b2;
EditText ed1,ed2;

TextView tx1;
int counter = 3;

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

    b1 = (Button)findViewById(R.id.button);
    ed1 = (EditText)findViewById(R.id.editText);
    ed2 = (EditText)findViewById(R.id.editText2);

    b2 = (Button)findViewById(R.id.button2);
    tx1 = (TextView)findViewById(R.id.textView3);
    tx1.setVisibility(View.GONE);

    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(ed1.getText().toString().equals("admin") && ed2.getText().toString().equals("admin")) {
                Toast.makeText(getApplicationContext(),
                        "Redirecting...",Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(login.this, MainActivity.class);
                        startActivity(i);
            }
            else{
                Toast.makeText(getApplicationContext(), "Fehlerhafte Eingabe",Toast.LENGTH_SHORT).show();

                        tx1.setVisibility(View.VISIBLE);
                tx1.setBackgroundColor(Color.RED);
                counter--;
                tx1.setText(Integer.toString(counter));

                if (counter == 0) {
                    b1.setEnabled(false);
                }
            }
        }
    });

    b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });
}
}

login.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:layout_width="match_parent"
android:layout_height = "match_parent"
tools:context = ".MainActivity">

<TextView android:text = "@string/login" android:layout_width="wrap_content"
    android:layout_height = "wrap_content"
    android:id = "@+id/textview"
    android:textSize = "35dp"
    android:textColor = "#00549F"
    android:layout_alignParentTop = "true"
    android:layout_centerHorizontal = "true" />

<TextView
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:text = "@string/rwth_aachen"
    android:id = "@+id/textView"
    android:layout_below = "@+id/textview"
    android:layout_centerHorizontal = "true"
    android:textColor = "#00549F"
    android:textSize = "35dp" />

<EditText
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:id = "@+id/editText"
    android:hint = "@string/name"
    android:focusable = "true"
    android:textColorHighlight = "#ff7eff15"
    android:textColorHint = "#ffff25e6"
    android:layout_marginTop = "46dp"
    android:layout_below = "@+id/imageView"
    android:layout_alignParentLeft = "true"
    android:layout_alignParentStart = "true"
    android:layout_alignParentRight = "true"
    android:layout_alignParentEnd = "true" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:ems="10"
    android:id="@+id/editText2"
    android:layout_below="@+id/editText"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/editText"
    android:layout_alignEnd="@+id/editText"
    android:textColorHint="#ffff299f"
    android:hint="@string/passwort" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/verbleibende_versuche"
    android:id="@+id/textView2"
    android:layout_below="@+id/editText2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:textSize="20dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView3"
    android:layout_alignTop="@+id/textView2"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignBottom="@+id/textView2"
    android:layout_toEndOf="@+id/textview"
    android:textSize="20dp"
    android:layout_toRightOf="@+id/textview" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/textview"
    android:layout_below="@+id/textView2"
    android:layout_marginTop="58dp"
    android:text="login" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="App verlassen"
    android:id="@+id/button2"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_toEndOf="@+id/textview" />

舱单是

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.cris.zeiterfassungv2">
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".login"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity"
        android:exported="true"/>
</application>


谢谢你

你的布局不正确。在活动(名为
login
)中,替换此行
setContentView(R.layout.Activity\u main)通过这个
setContentView(R.layout.login)

您得到的是
java.lang.NullPointerException
您没有在oncreate中的setContentView()方法中膨胀login.xml。所以它找不到文本视图。使用setContentView(R.layout.login.xml)你们真是太棒了