사용자가 갤러리에서 사진을 선택하여 프로필 사진으로 설정해야하는 응용 프로그램을 개발 중입니다. 이제 아래 코드가 대부분의 장치에서 제대로 작동하고 있습니다 (Motorola Moto G, One plus X, MI 4i 및 기타 제품을 확인했습니다). 내가 그것을 실행할 때마다 오류를주고 주요 redmi는 다음과 같이 말했다갤러리에서 이미지를 선택하고 ImageView에 표시 하시겠습니까?
스택 트레이스
에게프로세스 : com.example.lordvoldemort.imagepicker를, PID를 : 23,291
java.lang.RuntimeException가 : 실패 제공하는 결과를 ResultInfo {who = null, 요청 = 1, 결과 = -1, 데이터 = 의도 { dat = file : ///storage/emulated/0/DCIM/Camera/IMG_20160807_003845_HDR.jpg 일반 = 이미지/jpeg}} 활동 {com.example.lordvoldemort.imagepicker/com.example.lordvoldemort.imagepicker.MainActivity} : java.lang.NullPointerException : Att 에서 android.app.ActivityThread.deliverResults (ActivityThread.java:3595) 에서 참조 android.app.ActivityThread.handleSendResult 널 객체 ') 부울 android.database.Cursor.moveToFirst ('인터페이스 메소드를 호출 EMPT android.os.Handler에서 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1366) 에서 android.app.ActivityThread.access $ 1300 (ActivityThread.java:154) 에서 (ActivityThread.java:3638) .dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:135) 에 있습니다. android.app.ActivityThread.main (ActivityThread.java:5290) at java.lang.reflect.Method.invoke (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:908) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:703) 에 의해 발생 : java.lang.NullPointerException : 인터페이스 호출 시도 'null boolean android.database.Cursor.moveToFirst()'객체 참조 com.example.lordvoldemort.imagepicker.MainActivity.onActivityR android.app.ActivityThread.handleSendResult에서 android.app.ActivityThread.deliverResults에서 android.app.Activity.dispatchActivityResult (Activity.java:6241) 에서 esult (MainActivity.java:104) (ActivityThread.java:3591) android.os.Handler에서 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1366) 에서 android.app.ActivityThread.access $ 1300 (ActivityThread.java:154) 에서 (ActivityThread.java:3638) .dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:135) 에 있습니다. android.app.ActivityThread.main (ActivityThread.java:5290) at java.lang.reflect.Method.invoke (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:908) at com.android.internal.os.ZygoteInit.main (ZygoteInit.자바 : 703)
코드 제가
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver()
.query(selectedImage, filePathColumn, null,
null, null);
assert cursor != null;
cursor.moveToFirst();
int columnIndex = cursor
.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
newbitmap = BitmapFactory.decodeFile(filePath);
ImageView ivImage = (ImageView)findViewById(R.id.image);
ivImage.setImageBitmap(newbitmap);
public String getPathFromURI(Uri contentUri) {
String res = null;
String[] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
if (cursor.moveToFirst()) {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
res = cursor.getString(column_index);
}
cursor.close();
return res;
}
오류가 ActivityResult-에 사용하고 - 널의 인터페이스 메소드를 호출 시도 '부울 android.database.Cursor.moveToFirst() 객체 참조
해결책을 얻었습니까? 같은 오류 직면 –