[안드로이드 미디어 관련 오류]Caused by java.lang.IllegalArgumentException: Volume external_primary not found :Uri externalUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
파이어베이스에 새로운 오류보고가 올라왔다. 이번엔 노키아 4.2라는 폰으로 안드로이드 11 운영체제가 설치된 휴대폰이다. 안드로이드 11이 설치된 다른폰에서는 오류보고가 없었다.
Caused by java.lang.IllegalArgumentException: Volume external_primary not found
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.query(ContentProviderProxy.java:472)
at android.content.ContentResolver.query(ContentResolver.java:1185)
at android.content.ContentResolver.query(ContentResolver.java:1116)
at android.content.ContentResolver.query(ContentResolver.java:1072)
at com.common.task.MusicAsyncTask.a(MusicAsyncTask.java:46)
at com.common.task.MusicAsyncTask.doInBackground(MusicAsyncTask.java)
at com.common.task.MusicAsyncTask.doInBackground(MusicAsyncTask.java:2)
at android.os.AsyncTask$3.call(AsyncTask.java:394)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
오류가 발생한 폰이 없어서 오류를 재현할 방법이 없다. 이럴때가 가장 난감하다. 제조사들로부터 파편화된 운영체제를 설치한 안드로이드 폰을 개발자가 모두 소유할 수는 없는 노릇이다. 이럴때는 아이폰의 중앙집권적 업데이트 체제가 부럽다.
오류가 발생한 코드 위치
cur = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
, mCursorCols, null, null, null);
Uri externalUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI에 대한 접근방식이 문제가 되는것으로 확인이 되었다.
관련 정보는 찾아두었다. 처리는 좀 뒤에 하기로한다.