홈>
안녕하세요. 카메라 의도로 사진을 찍고 싶지만 사진을 촬영 한 후 다음과 같은 오류가 발생합니다.
오류 :
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=null} to activity {radautiul_civic.e_radauti/radautiul_civic.e_radauti.Civic_Alert}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:5004)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5047)
at android.app.ActivityThread.access$1600(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7331)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference
at radautiul_civic.e_radauti.Civic_Alert.onActivityResult(Civic_Alert.java:86)
at android.app.Activity.dispatchActivityResult(Activity.java:7165)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5000)
내 코드는 다음과 같습니다 :
static final int REQUEST_TAKE_PHOTO = 1;
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = image.getAbsolutePath();
return image;
}
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
// Continue only if the File was successfully created
if (photoFile != null) {
Uri photoURI = FileProvider.getUriForFile(this,
"com.example.android.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
여기 내 StartActivityForResult가 있습니다 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
imgBitmap = (Bitmap) data.getExtras().get("data");
img.setImageBitmap(imgBitmap);
Toast.makeText(getApplicationContext(),mCurrentPhotoPath,Toast.LENGTH_SHORT);
}
}
이것은 내가 실수하기 전에 한 일이다 : 1. 카메라 의도를 열었다 2. 사진을 본다 3.OK를 눌렀는데 결과의 데이터가 비어 있다는 것을 알았다
Google에서이 문서를 따랐습니다 : https://developer.android. com/training/camera/photobasics.html # TaskGallery 그래서 내가 잘못한 것을 말해 줄 수 있습니까? 미리 감사드립니다
- 답변 # 1
관련 자료
- root access - 전면 및 후면 카메라에서 동시에 사진/비디오를 찍으십니까?
- android - "다음 선언은 동일한 JVM 서명이 있습니다"오류로 사진을 찍은 후 onActivityResulton kotlin을 설정하는 방법은 무엇입니까?
- android - 새로운 의도를 시작한 후 이전 활동은 어떻게됩니까?
- ios - 권한이 거부 된 후 사진 라이브러리 및 카메라에 액세스 할 수 있습니다
- android pendingintent - 대기중인 의도가 몇 시간 후에 작동을 멈춤
- java - 앱이 처음 시작되면 사진이 깜박이기 시작합니다 다시 시작하면이 문제가 해결됩니다 왜?
- android - 캡처 후 카메라 품질 저하
- android - 활동의 의도를받은 후 조각을 만드는 방법은 무엇입니까?
- android - API에 게시하거나 앱에 결제를 추가하려는 의도는 무엇입니까? (주의 사항)
- jestjs - 반응 테스트 라이브러리 - fireevent 후 스냅 샷 찍기
- javascript - Android 및 iOS에서 전면 카메라를 열고 VueJs를 사용하여 사진을 찍는 방법은 무엇입니까?
- android - 화면 방향을 변경 한 후 카메라가 열리지 않도록하려면 어떻게합니까
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
카메라 의도로 추가 매개 변수 MediaStore.EXTRA_OUTPUT를 전달하면 카메라 활동이 캡처 된 이미지를 해당 경로에 기록하고
onActivityResult
의 비트 맵을 반환하지 않습니다. 방법.지나가는 경로를 확인하면 실제 카메라가 해당 경로에 캡처 된 파일을 기록했음을 알 수 있습니다.
따라서 코드를 약간 변경해야합니다
카메라 활동을 시작하려면
이미지를 캡처 한 후 onActivityResult 메소드에서 비트 맵 형식으로 이미지를 캡처합니다. 이제 비트 맵을 얻을 때 원하는대로 사용하십시오.
참고 : 여기서 비트 맵 객체는 엄지 이미지로 구성되며 전체 해상도 이미지는 갖지 않습니다
유용한 참고 문헌
http://dharmendra4android.blogspot.in/2012/04/save-captured-image-to-applications.html
데이터 폴더에 URI로 카메라 결과를 얻는 방법?