请帮我 。我用下面的代码得到Null指针异常 [英] Please help me . I am getting Null pointer Exception with the below code
问题描述
以下代码从SD卡或手机获取歌曲列表并在Mp3播放器中显示。但是当我运行应用程序时,应用程序失败并在以下代码中显示空指针异常。
有人可以帮我解决这个问题。请
公共类SongsManager {
// SDCard Path
final String MEDIA_PATH = new String();
private ArrayList< HashMap< String,String>> songsList = new ArrayList< HashMap< String,String>>();
//构造函数
public SongsManager(){
}
/ **
*函数读取所有mp3来自sdcard
*的文件并将详细信息存储在ArrayList
* * /
public ArrayList< HashMap< String,String>> getPlayList(){
File home = new File(MEDIA_PATH);
if(home.listFiles(new FileExtensionFilter())。length> 0){
for(File file:home.listFiles(new FileExtensionFilter())){
HashMap< String,String> song = new HashMap< String,String>();
song.put(songTitle,file.getName()。substring(0,(file.getName()。length() - 4)));
song.put(songPath,file.getPath());
//将每首歌曲添加到SongList
songsList.add(song);
}
}
//返回歌曲列表数组
返回songsList;
}
/ **
*用于过滤具有.mp3扩展名的文件的类
* * /
类FileExtensionFilter实现FilenameFilter {
public boolean accept(File dir,String name){
return(name.endsWith(。mp3)|| name.endsWith(。MP3));
}
}
}
Log Cat文件
无法启动活动ComponentInfo {com.android.musicplayer / com.android.musicplayer.AndroidBuildingMusicPlayerActivity}:java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity( ActivityThread.java:2198)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
在android.app.ActivityThread.access $ 800(ActivityThread.java :141)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1210)
在android.os.Handler.dispatchMessage(Handler.java:102 )
在android.os.Looper.loop(Looper.java:136)
在android.app.ActivityThread.main(ActivityThread.java:5050)< br / >
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.ja va:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method )
引起:java.lang.NullPointerException
在com.android.musicplayer.SongsManager.getPlayList(SongsManager.java:25)
在com.android.musicplayer.AndroidBuildingMusicPlayerActivity.onCreate(AndroidBuildingMusicPlayerActivity.java:77)
在android.app.Activity.performCreate(Activity.java:5248)
在android .app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
在android.app.ActivityThread .handleLaunchActivity(ActivityThread.java:2247)
在android.app.ActivityThread.access $ 800(ActivityThread.java:141)
在android.app.ActivityThread $ H。 handleMessage(ActivityThread.java:1210)
在android.os.Handler.dispatchMessage(Handler.java:102
在android.os.Looper .loop(Looper.java:136)
在android.app.ActivityThread.main(ActivityThread.java:5050)
at java.lang.reflect.Method.invokeNative (原生方法)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。运行(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart。 main(原生方法)
800(ActivityThread.java:141)
在android.app.ActivityThread
H.handleMessage(ActivityThread.java:1210)
在android.os.Handler.dispatchMessage(Handler.java:102)
在android.os .Looper.loop(Looper.java:136)
在android.app.ActivityThread.main(ActivityThread.java:5050)
在java.lang.reflect.Method .invokeNative(原生方法)
在java.lang.reflect.Method.invoke(Method.java:515)
在com.android.inter nal.os.ZygoteInit
MethodAndArgsCaller.run(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java :622)
at dalvik.system.NativeStart.main(原生方法)
引起:java.lang.NullPointerException
at com。 android.musicplayer.SongsManager.getPlayList(SongsManager.java:25)
在com.android.musicplayer.AndroidBuildingMusicPlayerActivity.onCreate(AndroidBuildingMusicPlayerActivity.java:77)
在android。 app.Activity.performCreate(Activity.java:5248)
在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
在android.app.ActivityThread。 performLaunchActivity(ActivityThread.java:2162)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
在android.app.ActivityThread.access
The following code takes the songlist from SD card or phone and display in the Mp3 Player. But when i run the app , app fails and shows null pointer exception in the following code.
Can some one please help me to resolve this issue. Please
public class SongsManager { // SDCard Path final String MEDIA_PATH = new String(""); private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); // Constructor public SongsManager(){ } /** * Function to read all mp3 files from sdcard * and store the details in ArrayList * */ public ArrayList<HashMap<String, String>> getPlayList(){ File home = new File(MEDIA_PATH); if (home.listFiles(new FileExtensionFilter()).length > 0) { for (File file : home.listFiles(new FileExtensionFilter())) { HashMap<String, String> song = new HashMap<String, String>(); song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4))); song.put("songPath", file.getPath()); //Adding each song to SongList songsList.add(song); } } // return songs list array return songsList; } /** * Class to filter files which are having .mp3 extension * */ class FileExtensionFilter implements FilenameFilter { public boolean accept(File dir, String name) { return (name.endsWith(".mp3") || name.endsWith(".MP3")); } } }
Log Cat File
Unable to start activity ComponentInfo{com.android.musicplayer/com.android.musicplayer.AndroidBuildingMusicPlayerActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
at android.app.ActivityThread.access$800(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5050)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.android.musicplayer.SongsManager.getPlayList(SongsManager.java:25)
at com.android.musicplayer.AndroidBuildingMusicPlayerActivity.onCreate(AndroidBuildingMusicPlayerActivity.java:77)
at android.app.Activity.performCreate(Activity.java:5248)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
at android.app.ActivityThread.access$800(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
at android.os.Handler.dispatchMessage(Handler.java:102
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5050)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
800(ActivityThread.java:141)
at android.app.ActivityThread
H.handleMessage(ActivityThread.java:1210)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5050)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit
MethodAndArgsCaller.run(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.android.musicplayer.SongsManager.getPlayList(SongsManager.java:25)
at com.android.musicplayer.AndroidBuildingMusicPlayerActivity.onCreate(AndroidBuildingMusicPlayerActivity.java:77)
at android.app.Activity.performCreate(Activity.java:5248)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
at android.app.ActivityThread.access
这篇关于请帮我 。我用下面的代码得到Null指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!