Java 我的应用程序不断停止';void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)和#x27;

Java 我的应用程序不断停止';void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)和#x27;,java,android,android-studio,Java,Android,Android Studio,我正在尝试向我的应用程序中添加微调器,但是当我进入添加微调器的页面时,我收到一个错误,该错误表示我的应用程序一直在停止,我已经在谷歌上找到了logcat,并单击了蓝色超链接以查看错误在哪里,但我仍然不知道如何解决它 logcat错误显示: 2021-04-12 16:38:35.013 20187-20194/com.example.myapplication E/art: Failed sending reply to debugger: Broken pipe 2021-04-12 16:

我正在尝试向我的应用程序中添加微调器,但是当我进入添加微调器的页面时,我收到一个错误,该错误表示我的应用程序一直在停止,我已经在谷歌上找到了logcat,并单击了蓝色超链接以查看错误在哪里,但我仍然不知道如何解决它

logcat错误显示:

2021-04-12 16:38:35.013 20187-20194/com.example.myapplication E/art: Failed sending reply to 
debugger: Broken pipe
2021-04-12 16:38:37.018 20187-20187/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 20187
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.Activity2}: 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:2646)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6077)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
 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.example.myapplication.Activity2.onCreate(Activity2.java:39)
    at android.app.Activity.performCreate(Activity.java:6662)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
    at android.app.ActivityThread.-wrap12(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6077) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
Activity2.java:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;

public class Activity2 extends AppCompatActivity {

String[] spinnerTitles;
String[] spinnerPopulation;
int[] spinnerImages;
Spinner mSpinner;
private boolean isUserInteracting;

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

    mSpinner = (Spinner) findViewById(R.id.spinner);
    spinnerTitles = new String[]{"American Pie", "Avengers Infinity War", "Avengers Endgame", "Goal I", "Goal II", "Mean Girls", "The Dark Knight", "The Dark Knight Rises", "10 Things I Hate ABout You", "Zack Snyder's Justice League"};
    spinnerPopulation = new String[]{"15 1999 ‧ Comedy/Romance ‧ 1h 36m", "12 2018 ‧ Action/Sci-fi ‧ 2h 40m", "12A 2019 ‧ Action/Sci-fi ‧ 3h 2m", "12 2005 ‧ Sport/Romance ‧ 2h 33m", "12 2007 ‧ Sport/Drama ‧ 1h 55m", "12 2004 ‧ Comedy/Teen ‧ 1h 37m", "12A 2008 ‧ Action/Adventure ‧ 2h 32m", "12A 2012 ‧ Action/Thriller ‧ 2h 44m", "12 1999 ‧ Romance/Comedy ‧ 1h 39m", "15 2021 ‧ Action/Adventure ‧ 4h 2m"};
    spinnerImages = new int[]{R.drawable.americanpie
            , R.drawable.avengersiw
            , R.drawable.avengerseg
            , R.drawable.goali
            , R.drawable.goalii
            , R.drawable.meangirls
            , R.drawable.thedarkknight
            , R.drawable.thedarkknightr
            , R.drawable.ttihay
            , R.drawable.zsjusticeleague};

    CustomAdapter mCustomAdapter = new CustomAdapter(Activity2.this, spinnerTitles, spinnerImages, spinnerPopulation);
    mSpinner.setAdapter(mCustomAdapter);

    mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            if (isUserInteracting) {
                Toast.makeText(Activity2.this, spinnerTitles[i], Toast.LENGTH_SHORT).show();
            }
        }
        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

}

@Override
public void onUserInteraction() {
    super.onUserInteraction();
    isUserInteracting = true;
}
}
package com.example.myapplication;
导入androidx.appcompat.app.appcompat活动;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.Spinner;
导入android.widget.Toast;
公共类活动2扩展了AppCompatActivity{
串[]喷丝头;
串[]喷丝头种群;
int[]喷丝头图像;
纺纱机;
私有布尔值;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSpinner=(微调器)findViewById(R.id.Spinner);
spinnerTitles=新字符串[]{“美国派”、“复仇者无限战争”、“复仇者终局”、“目标一”、“目标二”、“卑鄙女孩”、“黑暗骑士”、“黑暗骑士崛起”、“我恨你的十件事”、“扎克·斯奈德正义联盟”};
喷丝头人数=新串[]{“15 1999・喜剧/浪漫・1h 36m”、“12 2018・动作/科幻・2h 40m”、“12 A 2019・动作/科幻・3h 2m”、“12 2005・运动/浪漫・2h 33m”、“12 2007・运动/戏剧・1h 55m”、“12 2004・喜剧/青少年・1h 37m”、“12 A 2008・动作/冒险・2h 32m”,“12A 2012动作/惊悚片2h 44m”、“12 1999浪漫/喜剧1h 39m”、“15 2021动作/冒险4h 2m”;
spinnerImages=new int[]{R.drawable.americanpie
,R.drawable.avengersiw
,R.drawable.avengerseg
,R.drawable.goali
,R.drawable.goalii
,R.drawable.meangirls
,R.drawable.黑暗骑士
,R.drawable.黑暗骑士
,R.drawable.ttihay
,R.drawable.zJusticeLeague};
CustomAdapter McCustomAdapter=新的CustomAdapter(Activity2.this,spinnerTitles,spinnerImages,spinnerPopulation);
mSpinner.setAdapter(mCustomAdapter);
mSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
if(isUserInteracting){
Toast.makeText(Activity2.this,spinnerTitles[i],Toast.LENGTH_SHORT).show();
}
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
}
@凌驾
公共关系{
super.onUserInteraction();
isUserInteracting=true;
}
}
Activity2.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".Activity2">

<Spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp" />

</LinearLayout>

即使id正确,也要记住,您必须使用与视图相同的布局

改变

  setContentView(R.layout.activity_main);
致:


这实际上是我的活动2,但谢谢你的提示
  setContentView(R.layout.Activity2);