构建你的第一个应用程序 DisplayMessageActivity textview 错误,应用程序在启动时崩溃

Build your first app DisplayMessageActivity textview error, app crashes at startup

我在 Android 开发者网站上开始构建您的第一个应用程序。我在 DisplayMessageActivity.java 文件中收到以下错误。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.amir.myapplication/com.example.amir.myapplication.DisplayMessageActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import static com.example.amir.myapplication.R.id.textView;

public class DisplayMessageActivity extends AppCompatActivity {

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

    // Get the Intent that started this activity and extract the string
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    // Capture the layout's TextView and set the string as its text
    TextView textView = findViewById(R.id.textView);
    textView.setText(message);
   }
}

此外,我想知道为什么,当我手动输入时:

textView.setText(message);

setText 将红色变为错误,但是当我从 android 教程复制粘贴它时,setText 是灰色的。

请注意,我是一个完全的初学者。我学习了一个基础 Java 课程,并开始这个 android 教程作为我的第一个家 "project"。

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp"
    android:text="TextView"
    android:textColor="@android:color/holo_purple"
    android:typeface="sans"
    app:fontFamily="sans-serif"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

我通过将其更改为 textView2 来修复它 TextView textView = findViewById(R.id.textView2);

我通过将其更改为 textView2 来修复它,它是我的 xml 文件中的 ID (android:id="@+id/textView2")

TextView textView = findViewById(R.id.textView2);