java-androidStudio
java.lang.IllegalArgumentException: Couldn't find meta-data for provider 오류
uwaTech
2022. 5. 19. 13:26
카메라를 연동하고 싶다.
java 소스는 잘했는데 안된다..대체 메타데이터가 뭐가 문제라는 거지?
이럴땐
두가지를 확인해야 한다.
AndroidManifest.xml 에 provider와 package를 확인한다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="user.example.ex3">
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="user.example.ex3"
android:exported="false"
android:grantUriPermissions="true">
<!--파일경로 xml 생성-->
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/> <!--이부분!!!!-->
</provider>
provider에서 meta-data에 적힌 resource 에 적힌 파일명과 동일한 파일을 만든다.
file_paths.xml 에서 package를 확인한다.
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="my_images"
path="Android/data/user.example.ex3/files/Pictures" /> <!--이부분!!!!-->
</paths>
끝!
정리!
AndroidManifest.xml의 meta-data resource와 path의 파일명이 같은지 확인!
AndroidManifest.xml의 package와 authorities와 path파일의 path가 같은지 확인!