sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mariadb
  • docker
  • 고득점KIT
  • JPA
  • 레벨3
  • 알고리즘
  • 티스토리챌린지
  • 백준
  • spring boot
  • 프로그래머스
  • nginx
  • 오블완
  • java
  • 레벨2
  • 안드로이드 스튜디오
  • DB
  • 연습문제
  • Android Studio
  • 고득점 Kit
  • kotlin

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

Android/Debug

Android Debug :: File.createNewFile() Operation not permitted (Permission을 모두 줬는데도 되지 않는다면?)

2021. 4. 15. 02:03
728x90

 

- Manifest.xml

...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
...

해당 퍼미션을 주었음에도 File을 생성하려고 할때, Persmission이 허락되지 않았다는 오류가 발생..

 

 

API29로 바뀌면서 WRITE_EXTERNAL, READ_EXTERNAL 에 대한 Permission을 주었다고 할지언정 위와 같은 오류가 발생하게 된다. 해당 이슈에 대한 정확한 정보는 어렵지만 검색을 통해 단순 해결방법을 제시하고자한다.

 

해당 방법은 API 30으로 넘어가기전에 개발자들에게 햇갈리지 말라고 API 29에 대해서만 적용하게 함을 명심하자
즉, API 29에 대해서만 적용되기에 만약 자신의 api가 30 이상이라면 29로 바꾸고 진행해보자, 30이상이어야 하는 이유가 반드시 있다면 이 방법으로는 해결이 안될것이다.

 

1. api30으로 진행할 경우 초기 작업

android {
    //compileSdkVersion 30
    compileSdkVersion 29
    buildToolsVersion "30.0.2"

    defaultConfig {
    	...
        // minSdkVersion 30
        // 최소 버전이 30이상임으로, compile버전을 낮추면 min버전도 낮추어야 한다.
        minSdkVersion 29

 

2. manifest.xml application 밑에 해당 속성을 추가하여 주자.

<application
	...
    // 밑 소스가, api29에서는 stroage에 대한 권한을 약하게 해줄것이다.
	android:requestLegacyExternalStorage="true"
	...

말 그대로 단순 해결법이어서, 자신이 테스트 하거나 간단한 프로젝트를 진행할때만 사용하자 ㅎㅎ

 

출처 : https://stackoverflow.com/questions/16360763/permission-denied-when-creating-new-file-on-external-storage

 

Permission denied when creating new file on external storage

I need to copy a file from the assets to the external storage. Here is my code: File f = new File(Environment.getExternalStorageDirectory() + File.separator + "MyApp" + File.separa...

stackoverflow.com

 

정확하지 않을수 있습니다...

그러면 댓글로 혼내주세요!!

728x90

'Android > Debug' 카테고리의 다른 글

Android Debug :: 4.1ver 이후로 생기는 Plugin Error 를 해결하는 방법  (0) 2021.05.10
Android Debug :: 안드로이드 HTTP로 통신할때, 발생하는 문제 해결 방법  (0) 2021.04.19
    'Android/Debug' 카테고리의 다른 글
    • Android Debug :: 4.1ver 이후로 생기는 Plugin Error 를 해결하는 방법
    • Android Debug :: 안드로이드 HTTP로 통신할때, 발생하는 문제 해결 방법
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바