>source

저는 Android와 Java를 처음 사용합니다. 카메라에서 사진을 찍고 결과로 이미지 보기를 업데이트하려고 합니다. 나는 어려움을 겪고 있으며 올바른 방향으로 몇 가지 포인트를 사용할 수 있습니다.

빈 Uri 변수를 설정했습니다.

우리 카메라OneUri= Uri.EMPTY;

내 버튼 클릭은 이 함수를 호출합니다:

public void captureImage1(View view){
        c1GetContent.launch(cameraOneUri);
    }

등록은 다음과 같습니다.

ActivityResultLauncher<Uri> c1GetContent= registerForActivityResult(new ActivityResultContracts.TakePicture(),
            result -> {
                ImageView imageView1= findViewById(R.id.imageView1);
                imageView1.setImageURI(cameraOneUri);
    });

하지만 FileNotFoundException이 발생합니다: 콘텐츠 제공자가 없습니다:

java.io.FileNotFoundException: No content provider:
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1846)
        at android.content.ContentResolver.openOutputStream(ContentResolver.java:1562)
        at android.content.ContentResolver.openOutputStream(ContentResolver.java:1537)
        at com.android.camera.captureintent.state.StateSavingPicture.onEnter(StateSavingPicture.java:85)
        at com.android.camera.captureintent.stateful.StateMachineImpl.jumpToState(StateMachineImpl.java:62)
        at com.android.camera.captureintent.stateful.StateMachineImpl.processEvent(StateMachineImpl.java:110)
        at com.android.camera.captureintent.state.StateOpeningCamera$9.onClick(StateOpeningCamera.java:307)

어디부터 봐야 할까요?

launch()에 제공하는 값은 이미지를 기록할 Uri여야 합니다. Uri.EMPTY는 유효한 위치가 아닙니다. FileProvider를 사용하여 이미지를 저장하려는 Uri를 가져옵니다.

CommonsWare2022-01-31 12:21:14

아, 다른 변수처럼 취급하려고 했습니다. FileProvider에 대해 읽어보겠습니다. 감사합니다.

Jim2022-01-31 12:21:14
  • 이전 compression : Zlib deflate/inflate 적절한 초기화
  • 다음 swift : 이 문제를 해결할 수 없는 것 같습니다. 아이디어가 있습니까?