首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Media player create方法似乎不适用于我的项目,导致我的应用程序在启动第一个活动时崩溃。谁来帮帮我

Media player create方法似乎不适用于我的项目,导致我的应用程序在启动第一个活动时崩溃。谁来帮帮我
EN

Stack Overflow用户
提问于 2020-10-12 03:47:50
回答 1查看 36关注 0票数 0

保存媒体播放器创建方法的Util类:

{

代码语言:javascript
运行
复制
private static ArrayList<Song> allSongs;
private static ArrayList<Song> favouriteSongs;
private static int id = 0;
Context context;

public Util(Context context) {
    this.context = context;
}

public Util() {
    if (allSongs == null){
        allSongs = new ArrayList<>();
        initializingAllSongs();
    }

    if (favouriteSongs == null){
        favouriteSongs = new ArrayList<>();
    }
}



public static ArrayList<Song> getAllSongs() {
    return allSongs;
}

public static ArrayList<Song> getFavouriteSongs() {
    return favouriteSongs;
}
public void addToFavSongs(Song song){
    favouriteSongs.add(song);
}
public void removeFromFavSongs(Song song){
    favouriteSongs.remove(song);
}

private void  initializingAllSongs(){

    int songNumber = 0;
    String songTitle = "";
    String songLyrics = " ";
    MediaPlayer audioPlayer ;

    id++;
    songNumber = 1;
    songTitle = "Sample song Title ";
    songLyrics = "Sample lyrics Sample lyrics \n" +
            " Sample lyrics Sample lyrics \n" +
            "Sample lyrics Sample lyrics \n" +
            " Sample lyrics Sample lyrics";
    audioPlayer = new MediaPlayer();
    audioPlayer = MediaPlayer.create(context.getApplicationContext(), R.raw.audio);
    allSongs.add(new Song(id, songNumber, songTitle, songLyrics, audioPlayer ));




    id++;
    songNumber = 2;
    songTitle = "Sample song Title ";
    songLyrics  = "Sample lyrics Sample lyrics \n" +
            " Sample lyrics Sample lyrics \n" +
            "Sample lyrics Sample lyrics \n" +
            " Sample lyrics Sample lyrics";
    audioPlayer = new MediaPlayer();
    audioPlayer = MediaPlayer.create(context.getApplicationContext(), R.raw.audi);
    allSongs.add(new Song(id, songNumber, songTitle, songLyrics, audioPlayer ));


}

}

MainActivity (部分):

代码语言:javascript
运行
复制
     recyclerView = findViewById(R.id.songsRecView);

     SongRecViewAdapter adapter = new SongRecViewAdapter(this);
     recyclerView.setAdapter(adapter);
     recyclerView.setLayoutManager(new LinearLayoutManager(this));

     Util util = new Util();
     ArrayList<Song> allSongs = new ArrayList<>();
     allSongs = util.getAllSongs();
     adapter.setSongs(allSongs);

Logcat:起因: java.lang.NullPointerException:试图在位于com.example.mrfpc.Util.initializingAllSongs(Util.java:62)的空对象引用上调用虚方法的android.content.Context com.example.mrfpc.Util。(Util.java:22)位于com.example.mrfpc.MainActivity.onCreate(MainActivity.java:36)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-12 07:45:31

这是因为你没有在构造函数中初始化Context,也没有在你的activity中初始化。

在第二个构造函数中添加Context,并删除具有它的构造函数,在那里初始化它,它将不再抛出它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64308346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档