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가 같은지 확인!