Android 向应用程序添加微调器,然后崩溃

Android 向应用程序添加微调器,然后崩溃,android,android-spinner,Android,Android Spinner,我在我的应用程序中添加了一个微调器,应用程序崩溃了,无法建立。微调器显示存储器中的.mp3文件名项。有人能说出撞车的原因吗;我的代码有什么问题? 如果你需要更多的代码,请告诉我 这是主要活动的一部分 import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; //import android.v

我在我的应用程序中添加了一个微调器,应用程序崩溃了,无法建立。微调器显示存储器中的.mp3文件名项。有人能说出撞车的原因吗;我的代码有什么问题? 如果你需要更多的代码,请告诉我

这是主要活动的一部分

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

//import android.view.Window;



   public class MainActivity extends AppCompatActivity implements 
 AdapterView.OnItemSelectedListener {

    private Integer images[]={R.drawable.pic1, R.drawable.pic21, 
R.drawable.pic3, R.drawable.pic2, R.drawable.pic4,
            R.drawable.pic5, R.drawable.pic6, R.drawable.pic30, 
R.drawable.pic31, R.drawable.pic26, R.drawable.pic7, R.drawable.pic25, 
R.drawable.pic8, R.drawable.pic9,
            R.drawable.pic10, R.drawable.pic27, R.drawable.pic28, 
R.drawable.pic29, R.drawable.pic11, R.drawable.pic22, R.drawable.pic23, 
R.drawable.pic13, R.drawable.pic14,
            R.drawable.pic15, R.drawable.pic16, R.drawable.pic24, 
R.drawable.pic17, R.drawable.pic18, R.drawable.pic19
            , R.drawable.pic20, R.drawable.pic12};
.........
.........
 // for spinner
class Mp3Filter implements FilenameFilter {
    public boolean accept (File dir, String name){
        return (name.endsWith(".mp3"));
    }
}
 // spinner
public final String SD_PATH =new String("/sdcard/music/");
public List<String> songs = new ArrayList<String>();
Spinner mySpinner = (Spinner)findViewById(R.id.spinner1);

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
.....
.....
  mp = MediaPlayer.create(this, R.raw.shlomoimagine);
    mp.start();
    // currImage = 0;
    setContentView(R.layout.activity_main);


    //initializing the loop at the beginning of the app run
    initializeImageSwitcher();
    setImageRotateListener();
   // handler.post(runnable);
    updatePlayList();

...
...
private void updatePlayList() {
    File home=new File(SD_PATH);

    File[] files = home.listFiles(new Mp3Filter());
    if(files.length>0){
        for(File file:files){
            songs.add(file.getName());
        }
        ArrayAdapter<String> songList = new ArrayAdapter<String>
(this,R.layout.song_item,songs);
        mySpinner.setAdapter(songList);
        mySpinner.setOnItemSelectedListener(this);

    }
}
导入java.io.File;
导入java.io.FilenameFilter;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
//导入android.view.Window;
公共类MainActivity扩展了AppCompatActivity实现
AdapterView.OnItemSelectedListener{
私有整数映像[]={R.drawable.pic1,R.drawable.pic21,
R.drawable.pic3,R.drawable.pic2,R.drawable.pic4,
R.drawable.pic5,R.drawable.pic6,R.drawable.pic30,
R.drawable.pic31,R.drawable.pic26,R.drawable.pic7,R.drawable.pic25,
R.drawable.pic8,R.drawable.pic9,
R.drawable.pic10,R.drawable.pic27,R.drawable.pic28,
R.drawable.pic29,R.drawable.pic11,R.drawable.pic22,R.drawable.pic23,
R.drawable.pic13,R.drawable.pic14,
R.drawable.pic15,R.drawable.pic16,R.drawable.pic24,
R.drawable.pic17,R.drawable.pic18,R.drawable.pic19
,R.drawable.pic20,R.drawable.pic12};
.........
.........
//纺纱机
类Mp3Filter实现FilenameFilter{
公共布尔接受(文件目录,字符串名称){
返回(name.endsWith(“.mp3”);
}
}
//纺纱机
公共最终字符串SD_PATH=新字符串(“/sdcard/music/”);
公共列表歌曲=新建ArrayList();
微调器mySpinner=(微调器)findViewById(R.id.spinner1);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
.....
.....
mp=MediaPlayer.create(this,R.raw.shlomoimagine);
mp.start();
//currImage=0;
setContentView(R.layout.activity_main);
//在应用程序运行开始时初始化循环
初始化图像切换器();
setImageRotateListener();
//handler.post(可运行);
updatePlayList();
...
...
私有void updatePlayList(){
文件主目录=新文件(SD_路径);
File[]files=home.listFiles(新的Mp3Filter());
如果(文件长度>0){
用于(文件:文件){
songs.add(file.getName());
}
ArrayAdapter歌曲列表=新的ArrayAdapter
(此,右布局。歌曲项,歌曲);
setAdapter(歌曲列表);
setOnItemSelectedListener(这个);
}
}
这些是舱单上的零件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nati_1.ImageGallerySwitching_v8_2">

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.NoActionBar">

song_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1" 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20dp"
android:textStyle="bold"
/>

来自logcat

 12-20 00:22:48.014 12887-12887/com.nati_1.ImageGallerySwitching_v6 
E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.nati_1.ImageGallerySwitching_v6, PID: 12887



  java.lang.RuntimeException: Unable to instantiate activity      
ComponentInfo{com.nati_1.ImageGallerySwitching_v6/com.nati_1.ImageGallerySwitching_v8_2.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:2614)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)

at android.app.ActivityThread.-wrap12(ActivityThread.java)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)

at android.os.Handler.dispatchMessage(Handler.java:102)

at android.os.Looper.loop(Looper.java:154)

at android.app.ActivityThread.main(ActivityThread.java:6247)

at java.lang.reflect.Method.invoke(Native Method)

at 


 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

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:116)


at android.support.v7.app.AppCompatDelegateImplV9.<init>
(AppCompatDelegateImplV9.java:147)

at android.support.v7.app.AppCompatDelegateImplV11.<init>
(AppCompatDelegateImplV11.java:27)


at android.support.v7.app.AppCompatDelegateImplV14.<init>
(AppCompatDelegateImplV14.java:50)

at android.support.v7.app.AppCompatDelegateImplV23.<init>
(AppCompatDelegateImplV23.java:29)

at android.support.v7.app.AppCompatDelegateImplN.<init>
(AppCompatDelegateImplN.java:29)

at 
android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:197)

 at 
android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)

at 
 android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)

                                                                                     at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
                                                                                     at com.nati_1.ImageGallerySwitching_v8_2.MainActivity.<init>(MainActivity.java:225)
                                                                                     at java.lang.Class.newInstance(Native Method)
                                                                                     at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
                                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2604)
                                                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787) 
                                                                                     at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504) 
                                                                                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                     at android.os.Looper.loop(Looper.java:154) 
                                                                                     at android.app.ActivityThread.main(ActivityThread.java:6247) 
                                                                                     at java.lang.reflect.Method.invoke(Native Method) 
12-20 00:22:48.014 12887-12887/com.nati_1.ImageGallerySwitching_v6
E/AndroidRuntime:致命异常:主
进程:com.nati_1.ImageGallerySwitching_v6,PID:12887
java.lang.RuntimeException:无法实例化活动
ComponentInfo{com.nati_1.ImageGallerySwitching_v6/com.nati_1.ImageGallerySwitching_v8_2.MainActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.Window$Callback android.view.Window.getCallback()”
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2614)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)
位于android.app.ActivityThread.-wrap12(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:154)
位于android.app.ActivityThread.main(ActivityThread.java:6247)
位于java.lang.reflect.Method.invoke(本机方法)
在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
原因:java.lang.NullPointerException:尝试调用虚拟方法
空值上的“android.view.Window$Callback android.view.Window.getCallback()”
对象引用
位于android.support.v7.app.appcompatidelegateimplbase。
(appcompatedelegateimplbase.java:116)
在android.support.v7.app.appcompatidelegateimplv9。
(appcompatidelegateimplv9.java:147)
位于android.support.v7.app.appcompatidelegateimplv11。
(AppCompatDelegateImplV11.java:27)
位于android.support.v7.app.appcompatidelegateimplv14。
(AppCompatDelegateImplV14.java:50)
位于android.support.v7.app.appcompatidelegateimplv23。
(appcompatidelegateimplv23.java:29)
在android.support.v7.app.appcompatidelegateimpln。
(appcompatedelegateimpln.java:29)
在
创建(AppCompatDelegate.java:197)
在
创建(AppCompatDelegate.java:181)
在
android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
位于android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
在com.nati_1.ImageGallerySwitching_v8_2.MainActivity上。(MainActivity.java:225)
位于java.lang.Class.newInstance(本机方法)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1079)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2604)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)
位于android.app.ActivityThread.-wrap12(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)
在android.os.Handler.dispatchMessa
java.lang.NullPointerException: Attempt to invoke virtual method 
'android.view.Window$Callback android.view.Window.getCallback()' on a null  object reference
Spinner mySpinner = (Spinner)findViewById(R.id.spinner1);
Spinner mySpinner;

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

    mySpinner = (Spinner)findViewById(R.id.spinner1);
    ...
    ...
}