Java 空指针验证,即使代码正确

Java 空指针验证,即使代码正确,java,android,Java,Android,我正在android studio中制作一个应用程序,但我是java新手。我试图使用微调器创建一个下拉菜单,但是我得到了NullPointerExeption,但是我初始化了微调器变量。请帮忙。我犯了一个错误- 原因:java.lang.NullPointerException:尝试调用虚拟机 方法无效 android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)“”在 位于的空对象引用 com.seedtofarm.seedd

我正在android studio中制作一个应用程序,但我是java新手。我试图使用微调器创建一个下拉菜单,但是我得到了NullPointerExeption,但是我初始化了微调器变量。请帮忙。我犯了一个错误-

原因:java.lang.NullPointerException:尝试调用虚拟机 方法无效 android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)“”在 位于的空对象引用 com.seedtofarm.seeddelivery.TomatoOrderScreen.onCreate(TomatoOrderScreen.java:35)

Java代码

       package com.seedtofarm.seeddelivery;
   import android.app.Activity;
   import android.view.Window;
   import android.view.WindowManager;
   import android.annotation.SuppressLint;
   import android.content.Intent;
   import android.os.Bundle;
   import android.view.View;
   import android.widget.ArrayAdapter;
   import android.widget.Button;
   import android.widget.ImageButton;
   import android.widget.SearchView;
   import android.widget.Spinner;
   
   import androidx.appcompat.app.AppCompatActivity;
   
   import java.util.Objects;
   
   public class TomatoOrderScreen extends AppCompatActivity {
   
   Spinner mySpinner;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       requestWindowFeature(Window.FEATURE_NO_TITLE);            
       Objects.requireNonNull(getSupportActionBar()).hide();
       setContentView(R.layout.activity_main);
       mySpinner = (Spinner)findViewById(R.id.spinner2);
       ArrayAdapter<String> adapter = new ArrayAdapter<String> 
       (this,android.R.layout.simple_expandable_list_item_1,
       getResources().getStringArray(R.array.Variety));
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       mySpinner.setAdapter(adapter);
   }
}

我做错什么了吗请帮忙。

这能回答你的问题吗<代码>即使代码是正确的如果它是正确的,它也不会崩溃debug行
mySpinner=(微调器)findViewById(R.id.spinner2),它可能返回空值。请不要将“代码编译无错误”与“代码正确”混淆。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
android:background="#E5E5E5"
tools:context=".TomatoOrderScreen">

<ImageView
    android:id="@+id/cropImage"
    android:layout_width="389dp"
    android:layout_height="327dp"
    android:layout_marginBottom="380dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="@+id/textView2"
    app:layout_constraintHorizontal_bias="0.064"
    app:layout_constraintStart_toStartOf="@+id/textView2"
    app:layout_constraintTop_toBottomOf="@+id/textView2"
    app:layout_constraintVertical_bias="0.0"
    app:srcCompat="@drawable/tomato" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="203dp"
    android:layout_height="61dp"
    android:text="Tomato"
    android:textColor="@color/black"
    android:textSize="48sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.084"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.02" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="324dp"
    android:layout_height="56dp"
    android:text="Get by: 12 June"
    android:textColor="#8BC34A"
    android:textSize="34sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.057"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"``
    app:layout_constraintVertical_bias="0.582" />

<Button
    android:id="@+id/button8"
    android:layout_width="353dp"
    android:layout_height="81dp"
    android:text="Order Now"
    android:textSize="24sp"
    app:backgroundTint="#8BC34A"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="@+id/textView3"
    app:layout_constraintHorizontal_bias="0.034"
    app:layout_constraintStart_toStartOf="@+id/textView3"
    app:layout_constraintTop_toBottomOf="@+id/textView3"
    app:layout_constraintVertical_bias="0.531" />

<Button
    android:id="@+id/button2"
    android:layout_width="347dp"
    android:layout_height="66dp"
    android:layout_marginTop="23dp"
    android:text="Add To Cart"
    app:backgroundTint="#4CAF50"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="@+id/button8"
    app:layout_constraintHorizontal_bias="0.833"
    app:layout_constraintStart_toStartOf="@+id/button8"
    app:layout_constraintTop_toBottomOf="@+id/button8"
    app:layout_constraintVertical_bias="0.0" />

<Spinner
    android:id="@+id/spinner2"
    android:layout_width="391dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="52dp"
    android:layout_marginBottom="53dp"
    app:layout_constraintBottom_toTopOf="@+id/button8"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView3" />

 </androidx.constraintlayout.widget.ConstraintLayout>
    06-03 10:00:57.869 28426-28426/com.seedtofarm.seeddelivery 
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.seedtofarm.seeddelivery, PID: 28426
    java.lang.RuntimeException: Unable to start activity 
    OrderScreen}: java.lang.NullPointerException: Attempt to invoke virtual 
    method 'void 
    android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a 
    null object reference
    at 
  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2426)
        at android.app.ActivityThread.access$900(ActivityThread.java:155)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
        at android.os.Handler.dispatchMessage(Handler.java:102)
      `enter code here`  at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5318)
        at java.lang.reflect.Method.invoke(Nativ`enter code here`e Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:922)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:717)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
        at com.seedtofarm.seeddelivery.TomatoOrderScreen.onCreate(TomatoOrderScreen.java:35)
        at android.app.Activity.performCreate(Activity.java:6024)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2426) 
        at android.app.ActivityThread.access$900(ActivityThread.java:155) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5318) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:922) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:717)