-1

我正在构建 Android 音乐播放器应用程序。我完成了设计和编码,但是当我在模拟器中运行它时,它给了我以下错误:

应用程序 Droid Player(进程 com.droid.droidplayer)意外停止。请再试一次。

这里是源代码链接: 源代码

源代码中没有错误,但在运行应用程序后,它在 LogCat 中显示错误:

02-14 20:28:49.037: E/AndroidRuntime(383): 致命异常: main

02-14 20:28:49.037: E/AndroidRuntime(383): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.droid.droidplayer/com.droid.droidplayer.Player}: java.lang.NullPointerException

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.ActivityThread.access$500(ActivityThread.java:122)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.os.Handler.dispatchMessage(Handler.java:99)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.os.Looper.loop(Looper.java:132)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.ActivityThread.main(ActivityThread.java:4123)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 java.lang.reflect.Method.invokeNative(Native Method)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 java.lang.reflect.Method.invoke(Method.java:491)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)

02-14 20:28:49.037: E/AndroidRuntime(383): at dalvik.system.NativeStart.main(Native Method)

02-14 20:28:49.037: E/AndroidRuntime(383): 引起: java.lang.NullPointerException

02-14 20:28:49.037: E/AndroidRuntime(383): 在 com.droid.droidplayer.SongsManager.getPlayList(SongsManager.java:25)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 com.droid.droidplayer.Player.onCreate(Player.java:76)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.Activity.performCreate(Activity.java:4397)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)

02-14 20:28:49.037: E/AndroidRuntime(383): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)

02-14 20:28:49.037: E/AndroidRuntime(383): ... 11 更多

02-14 20:29:27.166: I/Process(383): 发送信号。PID:383 SIG:9

4

2 回答 2

0

SongsManager 第 25 行的对象为空。

于 2013-02-14T17:40:43.827 回答
0
  1. 包 com.droid.droidplayer;

  2. 导入java.io.File;
  3. 导入 java.io.FilenameFilter;
  4. 导入 java.util.ArrayList;
  5. 导入 java.util.HashMap;

  6. 公共类 SongsManager {
  7. // SD卡路径
  8. final String MEDIA_PATH = new String("/sdcard/");
  9. 私有数组列表>歌曲列表=新数组列表>();

  10. // 构造函数
  11. 公共 SongsManager(){

  12. }





  13. 公共 ArrayList> getPlayList(){
  14. 文件主页 = 新文件(MEDIA_PATH);

  15. if (home.listFiles(new FileExtensionFilter()).length > 0) {
  16. for (文件文件: home.listFiles(new FileExtensionFilter())) {
  17. HashMap song = new HashMap();
  18. song.put("songTitle", file.getName().substring(0 (file.getName().length() - 4)));
  19. song.put("songPath", file.getPath());

  20. // 将每首歌曲添加到 SongList
  21. 歌曲列表.add(歌曲);
  22. }
  23. }
  24. // 返回歌曲列表数组
  25. 返回歌曲列表;
  26. }




  27. 类 FileExtensionFilter 实现 FilenameFilter {
  28. 公共布尔接受(文件目录,字符串名称){
  29. return (name.endsWith(".mp3") || name.endsWith(".MP3"));
  30. }
  31. }
  32. }
于 2013-02-15T02:33:24.037 回答