-
[Android_에러해결] 사진촬영시 앱꺼짐▶︎ Android/react-native 2025. 3. 26. 20:19반응형
▼ 이슈내용
안드로이드에서 사진촬영을 하려고 하면 앱이 꺼지는 에러가 발생하였다.
▼ 에러 사유
리액트에서 제공하는 안드로이드 권한로직이 변경된 것으로 추정된다.
관리중엔 두개 앱의 코드가 같은데, 개중에 하나의 앱만 에러난다.
다른점을 찾아보니 react 버전이 다르다.
정상작동하는 A앱의 버전은 "react": "16.9.0",
에러난 B앱의 버전은 "react": "16.11.0",
▼ 에러 발생된 앱의 스펙
"react": "16.11.0", "react-native-camera": "3.26.0",
buildscript { ext { compileSdkVersion = 33 buildToolsVersion = "30.0.3" minSdkVersion = 25 //24 targetSdkVersion = 34 ndkVersion = "23.1.7779620" } }
▼ 에러내용
배포된 앱에서는 사진촬영을 하려고 하면 앱이 꺼진다.
시뮬레이터에서 작동해보니 아래와 같은 에러문구가 발생하였다.
▶︎ 이건 시뮬레이터에서 발생한 에러다
에러문구는 아래와 같다.
permission is null
▼ 아래는 터미널에 나오는 에러 문구다.
The 'captureAudio property set on RNCamera instance but 'RECORD_AUDIO permissions not defined in the applications 'AndroidManifest.xml'. If you want to record audio you will have to add 'cuses-permission android: name="android.permission.RECORD_AUDIO"/>' to your 'AndroidManifest.xml'. Otherwise you should set the 'captureAudio' property on the component instance to "false'.
▼ 해결방법
▼ 기존코드const checkAndroidPermission = async () => { try { const permission = PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES; await PermissionsAndroid.request(permission); Promise.resolve(); } catch (error) { Promise.reject(error); } };
▼ 수정된코드
const checkAndroidPermission = async () => { try { const permission = 'android.permission.READ_MEDIA_IMAGES'; const granted = await PermissionsAndroid.request(permission); if (granted === PermissionsAndroid.RESULTS.GRANTED) { console.log('권한이 부여되었습니다.'); } else { console.log('권한이 부여되지 않았습니다.'); } } catch (error) { console.error('Permission request failed', error); } };
TMI
터미널에서 나온 에러는 오디오에 대한 에러인데, 아래 코드에서 captureAudio를 true로 했을경우에 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 퍼미션을 추가하지 않았을때 발생되어야하는 에러다.
하지만 나는 false로 되어있어서 관련없이, 위의 라이브러리 버전에 대한 에러엿다 ㅎㅎ
오늘은 다행히 에러문구함정에서 오래 떠돌지 않아따 휴-< RNCamera captureAudio="false" >
반응형'▶︎ Android > react-native' 카테고리의 다른 글
[Android_에러해결] 시뮬레이터 빌드에러 (0) 2025.02.19 [Android_에러해결] APK 빌드에러 (0) 2025.02.19