우물안에서 보는 하늘도 맑다

오틸라의 안드로이드 앱 만들기 강좌 : 힐링 #12 본문

경단녀에서 "나"로 돌아가기/안드로이드

오틸라의 안드로이드 앱 만들기 강좌 : 힐링 #12

몽염이 2020. 9. 18. 14:12
반응형

* FileProvider 를 AndroidManifest.xml에 추가함

 - 참고 : FileProvider 정리 by 강효재님

 ttr5656-9494256.tistory.com/6

 

FileProvider 정리

1. FileProvider란? 우선적으로 알아두어야 하는 점 : Android 4대 컴포넌트 1) Activity 2) Service 3) BroadcastReceiver 4) ContentProvider 그 중에서도 Android 4대 컴포넌트 중 하나인 ContentProvider cont..

ttr5656-9494256.tistory.com

- 참고 : 파일공유시 FileProvider 이용하는 방법 by bacass

bacassf.tistory.com/8

 

파일공유시 FileProvider 이용하기.

# 파일공유시 FileProvider 이용하기. FileUriExposedException 해결. Android 7.0(Nougat / API 24)에서 Intent로 URI 파일 경로 전송시 "file://" 이런식으로 구현되어있으면 FileUriExposedExcepti..

bacassf.tistory.com

 

* 오류1

- 갤러리에서 파일을 선택 후, 리스트에 추가가 되지만  delete 버튼과 sort 버튼이 나타나지 않음

- 디자인 뷰에서 나타나지 않아서 한참 헤매다가 원인을 찾음

- 11강을 다시 보고 내가 복사한 item_write.xml 에는 delete, sort 버튼이 AppCompatTextView로 되어 있었지만, 11강 강자에서 보이는 소스에서는 AppCompatImageView로 되어있음

 

[오류 화면] delete, sort 버튼이 나타나지 않음
delete, sort 버튼이 나타남

 

* 오류2

- 카메라 기능을 추가하는 중 아래와 같은 오류 메세지가 발생함

- 오류 메세지

android.content.pm.PackageManager$NameNotFoundException: com.tmobile.vvm.application

at android.app.ApplicationPackageManager.getApplicationInfoAsUser(ApplicationPackageManager.java:423)
at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:412)
at ixu.n(PG:3)
at ixu.d(Unknown Source:8)
at jde.a(PG:5)
at com.android.voicemail.impl.ActivationTask.b(PG:31)
at jct.handleMessage(PG:2)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)

 

 

 

2020-09-20 23:47:06.127 6388-6388/com.android.camera2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.camera2, PID: 6388
java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:890)
at com.google.common.base.Optional.of(Optional.java:103)
at com.android.camera.captureintent.state.StateSavingPicture.onEnter(StateSavingPicture.java:77)
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)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

 

 

WriteActivity.java

 

//카메라 촬영해서 사진 가져오기

private void getCamera(){

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

if(intent.resolveActivity(getPackageManager()) != null){

photoFile = createImageFile();

}

if(photoFile != null){

//버전이 높을 때, 처리부분

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){  ----- >===로 잘못 표기해서 오류남

//4.4이상 권한을 같이 줘야 함

intent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(WriteActivity.this,"kr.co.otilla.agmeditlist.fileprovider", photoFile));

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

}else{

//4.4 이하

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));

}

startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);

}else{

//파일 생성이 실패 했을 경우

Toast.makeText(WriteActivity.this, "이미지 생성 실패!! 다시 시도해주세요.", Toast.LENGTH_SHORT).show();

}

}

 

 

* 오류3

- 아직 sort 버튼이 사진 제목과 겹쳐보이는 문제가 있음. 

- 이 후 실습하면서 확인해 볼 것.

 

* 오틸라의 안드로이드 앱 만들기 : 힐링 #12 유튜브 영상

youtu.be/inBXxhVK5u4

 

반응형