-
외부 라이브러리 추가시 AndroidManifest.xml 병합LANGUAGE/ANDROID 2020. 7. 8. 16:48
최근 외부 업체 라이브러리를 추가하여 기능 개발중 전혀 연관없는 공인인증서 복사 부분에서 에러가 발생하였다.
라이브러리 추가 전 브랜치 코드에서는 정상적으로 동작하여 이번 작업중 영향을 미칠 부분을 찾아보니
AndroidManifest.xml이 가장 유력하였다.
상용 서비스들은 대다수 현재 app 소스 말고도 여러 라이브러리들을 쓰고 있다.
그런 여러 라이브러리에 있는 AndroidManifest.xml을 포함하여 APK를 만들때 하나의 AndroidManifest.xml을 만든다.
나의 경우 파일 저장이 안되는 문제여서 android.permission.WRITE_EXTERNAL_STORAGE 쪽 영향이 있을것이라 예상되었다.
라이브러리의 AndroidManifest.xml를 확인해 보니 해당 퍼미션에 android:maxSdkVersion="14" 라고 적혀 있었다.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="14"/>
쉽게 말해 maxSdkVersion 보다 위의 버전에서는 해당 권한을 부여하지 않겠다라는 뜻이다.
결과적으로 합쳐진 AndroidManifest.xml의 android.permission.WRITE_EXTERNAL_STORAGE 부분에는 android:maxSdkVersion이 설정되서 파일 쓰기가 되지 않았던 것이다.
- 해결 방법
app 프로젝트에 있는 android.permission.WRITE_EXTERNAL_STORAGE tag 안에 tools:node="replace" 를 추가해주자!
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>
참고
https://developer.android.com/studio/build/manifest-merge?hl=ko
https://developer.android.com/guide/topics/manifest/uses-permission-element?hl=ko
'LANGUAGE > ANDROID' 카테고리의 다른 글
[Android] java.lang.IllegalArgumentException: Service not registered: com.google.android.gms.measurement.internal.zzji@xxx (0) 2020.10.16 [Android] Webview Geolocation 사용하기 (0) 2020.08.24 [Kotlin] object 익명 클래스, 무명 객체 [anonymous object] 에서 View 접근하기 (0) 2020.06.19 FCM Android Backgroud (feat. app launch) (0) 2019.07.26 [Flutter] 설치 및 Android SDK Custom path 사용시 에러 (0) 2019.04.08