0
오디오를 녹음하는 앱이 있습니다. 나는 listview에 넣어 수 있도록 SD 카드에 저장된 파일 이름을 얻으려고 노력하고있어. 나는 아마 SD 카드의 루트에 파일을 저장하는 것이 가장 좋은 방법은 아니라는 것을 알고 있지만 :) (dcim과 같은 레벨, ect라고 들린다). listFiles() 메서드에 관한 nullpointerexception을 얻고 있습니다. 여기 내 코드가있다. 예외에 대한 아이디어가 있습니까?은 SD 카드에서 파일 이름을 가져올 수 없습니다.
File sdCardRoot = Environment.getExternalStorageDirectory();
Log.i("root on sd =", ""+ sdCardRoot.getPath());
for (File f : sdCardRoot.listFiles()) {
if (f.isFile()){
String name = f.getName();
Log.i("arr names******", ""+arr.get(0));
arr.add(name);
}else
{
Log.i("file", " no file");
}
Log.i("arr******", ""+arr.size());
}
02-13 19:16:19.063: INFO/ActivityManager(1903): Starting activity: Intent { cmp=com.tecmark/.SdGetList }
02-13 19:16:19.118: INFO/root on sd =(10308): /sdcard
02-13 19:16:19.123: INFO/file(10308): no file
02-13 19:16:19.128: DEBUG/AndroidRuntime(10308): Shutting down VM
02-13 19:16:19.128: WARN/dalvikvm(10308): threadid=3: thread exiting with uncaught exception (group=0x4001b180)
02-13 19:16:19.128: ERROR/AndroidRuntime(10308): Uncaught handler: thread main exiting due to uncaught exception
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tecmark/com.tecmark.SdGetList}: java.lang.NullPointerException
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.os.Handler.dispatchMessage(Handler.java:99)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.os.Looper.loop(Looper.java:123)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at android.app.ActivityThread.main(ActivityThread.java:4363)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at java.lang.reflect.Method.invokeNative(Native Method)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at java.lang.reflect.Method.invoke(Method.java:521)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at dalvik.system.NativeStart.main(Native Method)
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): Caused by: java.lang.NullPointerException
02-13 19:16:19.138: ERROR/AndroidRuntime(10308): at com.tecmark.SdGetList.onCreate(SdGetList.java:38)
나는 똑같은 말을하려고했다. 그리고 확실하게 파일 이름을 목록에 추가 한 후 로그인 하시겠습니까? IE : arr.add (이름); Log.i ("arr 이름 ******", ""+ arr.get (0)); 또한 get (0)은 첫 번째 파일 만 표시하므로이 파일을 증가시켜야합니다. 방금 ""+ 이름으로 변경했습니다. – stealthcopter
안녕하세요. 초기화에 문제가 있습니다. :) – turtleboy