図書館プロジェクトで活動をしています。その活動から、ライブラリから画像を取得しようとしています。1,000 回に 1 回 (メタファー)、以下のコードは正常に動作します。しかし、ほとんどの場合、画像を選択した後、アプリケーションは黒い画面で動かなくなります。
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/* video/*");
startActivityForResult(intent, REQUEST_GALLERY);
ログ
これは成功のシナリオです:
06-22 11:22:16.559 19038-19038/com.xyz D/SELECT_IMAGE: onCreate
06-22 11:22:16.869 19038-19038/com.xyz D/SELECT_IMAGE: onResume
06-22 11:22:24.949 19038-19038/com.xyz D/SELECT_IMAGE: Before startActivityForResult
06-22 11:22:24.959 19038-19038/com.xyz D/SELECT_IMAGE: After startActivityForResult
06-22 11:22:32.359 19038-19038/com.xyz D/SELECT_IMAGE: RESULT onActivityResult
06-22 11:22:32.429 19038-19038/com.xyz D/SELECT_IMAGE: onResume
この後、もう一度試してみましたが、これら2つのログだけで、スタックしました
06-22 11:23:02.919 19038-19038/com.xyz D/SELECT_IMAGE: Before startActivityForResult
06-22 11:23:02.929 19038-19038/com.xyz D/SELECT_IMAGE: After startActivityForResult
EDITED:私が得たログadb shell dumpsys activity top
java.lang.IndexOutOfBoundsException: Invalid index 6, size is 3
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.android.server.am.ActivityStack.getDumpActivitiesLocked(ActivityStack.java:6544)
at com.android.server.am.ActivityStackSupervisor.getDumpActivitiesLocked(ActivityStackSupervisor.java:5734)
at com.android.server.am.ActivityManagerService.dumpActivity(ActivityManagerService.java:17777)
at com.android.server.am.ActivityManagerService.dump(ActivityManagerService.java:16936)
at android.os.Binder.dump(Binder.java:334)
at android.os.Binder.onTransact(Binder.java:292)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:2568)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3242)
at android.os.Binder.execTransact(Binder.java:461)