마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ID3 Tag 에러 한번 봐주세요ㅠㅠ

0 추천
do {

    String mdatastream = musicCursor.getString(dataColumn);

    if (mdatastream.endsWith(".mp3")) {
          
     try {
      Mp3File mp3File = new Mp3File(mdatastream);
      if(mp3File.hasId3v2Tag()){
       ID3v2 id3v2 = mp3File.getId3v2Tag();
       //
       String utfString = new String((id3v2.getGenreDescription()).getBytes("ISO-8859-1"), "EUC-KR");
       Log.i("genre", utfString);
      }
      
      
     } catch (UnsupportedTagException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } catch (InvalidDataException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     
     
    }

   } while (musicCursor.moveToNext());
   

 

문제 있는 부분은 아마 Mp3부분 같습니다.

mp3agic 이라는 jar 파일을 사용하였구요.

mp3file 부분이 교체(?)가 안되는것 같습니다.

ㄷ데이터위치는 정확하구요ㅠㅠ 나머지는 문제가 없습니다.

실행도 안되고 아예 어플이 죽는데요..

 

FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to start service com.player.dbservice.DBService@42e6a6d8 with Intent {

cmp=com.player.dbservice.DBService }: java.lang.NullPointerException

 

이런식으로 에러가 발생합니다.

왜 nullPointerException이 뜨는지ㅠㅠㅠㅠㅠ 한번 봐주시면 감사하겠습니다.

sss0922 님이 2015년 1월 27일 질문
ID3v2 태그가 없는 파일은 에러가 나네요!

1개의 답변

0 추천
위 코드에서 null이 발생할 가능성이 두군데에 있습니다.
다음과 같이 수정해서 해보세여
 
ID3v2 id3v2 = mp3File.getId3v2Tag();
//
if (id3v2 != null) {
      String genreDesc = id3v2.getGenreDescription();
      if (TextUtils.isEmpty(genreDesc)) {
             String utfString = new String((genreDesc).getBytes("ISO-8859-1"), "EUC-KR");
             Log.i("genre", utfString);
      } else {
             //genreDescription 이 null 일 때의 처리
      }
} else {
      // id3v2 가 null 일 때의 처리
}
Gradler (109,780 포인트) 님이 2015년 1월 27일 답변
감사합니다. null값이 들어간 부분도 한번더 확인할 수 있었네요 ㅎㅎ
...