일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 지산동카페
- 개발자
- 동성로핫플
- 감성카페
- 범물동
- 의무경찰
- 대구인스타핫플
- 대구카페
- 파이썬
- Android
- 어플개발
- 애드센스
- androidstudio
- 범물동카페
- 앱개발
- 안드로이드앱개발
- 인스타핫플
- 안드로이드
- 수성구카페
- 코딩공부
- 수성구맛집
- 애드몹
- 동성로카페
- 안드로이드앱
- 동성로맛집
- 대구핫플
- 안드로이드스튜디오
- 코딩
- 안드로이드개발
- 대구맛집
- Today
- Total
Glacier's Daily Log
Android) 파일 입출력 과정에서의 java.io.FileNotFoundException open failed: EACCES (Permission denied) 문제 해결하기 본문
Android) 파일 입출력 과정에서의 java.io.FileNotFoundException open failed: EACCES (Permission denied) 문제 해결하기
h__glacier_ 2020. 8. 26. 16:25현재 개발중인 안드로이드 앱에 캡쳐 기능을 넣으려고 코딩 중에
처음보는, 골치아픈 에러가 자꾸 발생했다.
현재 디데이 어플을 개발중이다.
커플들을 위한 디데이 어플인데, 필요한 기능만 넣어 가볍고 깔끔한 UI를 강점으로 내세우려 한다.
그리고, 버튼 하나만 누르면 네모 그려놓은 부분만 캡쳐가 되어, 갤러리에 저장이 되게 설계 중이였다.
우선, buildDrawingCache(); 관련 소스를 이용해서
내가 필요한 View 만을 캡쳐 할 수 있게 하였다.
위의 네모 형광펜 쳐놓은 View는, elevation을 준 LinearLayout 으로 이루어져 있다.
저 LineaLayout에 main_view 라는 id값을 준 뒤, 이 부분만 따로 buildDrawingCache(); 를 수행하여
캡쳐해주는 방식을 채택했다.
내가 한 방법대로라면 바로 저장되어야 하지만 자꾸만 오류가 발생했다.
혹여나 permission 관련 이슈를 놓쳤을까봐 Manifest에 들어가 확인을 하였다.
필요한 외부저장공간 읽기/쓰기 권한은 모두 주어져 있었다.
심지어, 안드로이드 6.0 (마시멜로우) 이상 버젼 부터는
사용자가 직접 권한을 허용하는 다이얼로그 창을 띄워주어야 하기떄문에
이와 관련한 코드도 모두 추가시켜 주었다.
이 모든 과정을 거치고도 자꾸 오류가 떠서
Logcat 을 열어 실시간 디버깅 해보니
캡쳐소스를 실행할때 마다
java.io.FileNotFoundException: /storage/000/000.jpeg:
open failed: EACCES (Permission denied)
라는 오류가 뿜어져 나오는 것을 확인 할 수 있었다.
난 분명히 사용자에게 읽기/쓰기 권한을 허용받았는데
왜자꾸 퍼미션 관련 오류가 나는지
너무 답답하여 몇분을 헤매다가
구글링 을 하여 해답을 찾았다.
이 오류는 Android 10 버젼의 스마트폰에서만 일어나는 것으로 확인되었다.
내 코드상의 오류인지, Android 10 상의 이슈인지는 모르겠으나,
Manifest 에
android:requestLegacyExternalStorage="true"
구문을 추가시키니 매우 정상적으로 작동하는 모습을 볼 수 있었다.
이런 간단한 구문 하나만으로
몇분을 헤매던 버그가 해결되는 것 보니
코딩의 끝은 "구글링" 이라는 생각이
더욱 확고해졌다.
'Coding > Android' 카테고리의 다른 글
Android) 앱이 Google Play 정책을 준수하지 않음 해결하기 - "개인정보처리방침" URL 만드는 법 (4) | 2020.12.05 |
---|---|
Android) ImageView 사진이 자동으로 회전될 때 해결법 - Glide 라이브러리 사용하기 (8) | 2020.09.20 |
무료 만남 어플) 동친소 - "동네 친구를 소개합니다", 신개념 만남 어플 (0) | 2020.08.12 |
구글 애드몹/애드센스 수취인 주소 인증 PIN번호 입력 후기 - Admob/Adsense PIN Verification (5) | 2020.08.11 |
Android) 제비뽑기 / 사다리타기 앱 추천 - '랜덤 제비뽑기' (0) | 2020.07.08 |