java.lang.IllegalArgumentException: Couldn‘t find meta-data for provider with authority com.XXX.XXX

今天写相机拍照,Android7.0以上版本出现崩溃,报以下异常:


解决方案:

在AndroidManifest.xml中添加:

1.相机拍照权限

 <!--拍照-->
<uses-permission android:name="android.permission.CAMERA" />
2.添加FileProvider
<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_path" />
</provider>

 

file_path.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <paths>
        <external-path
            name="camera_photos"
            path="" />
    </paths>
</resources>
要解决 `java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority com.qish.tenmentapp.provider` 异常,可从以下方面排查和处理: ### 检查 AndroidManifest.xml 文件 确保在 `AndroidManifest.xml` 中正确配置了 `FileProvider`,且 `android:authorities` 的值与报错信息中的一致。示例配置如下: ```xml <provider android:name="androidx.core.content.FileProvider" android:authorities="com.qish.tenmentapp.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> ``` 其中,`android:authorities` 要与报错信息中的 `com.qish.tenmentapp.provider` 一致,`android:resource` 指向正确的 `xml` 文件路径。 ### 检查文件路径配置 确保 `@xml/file_paths` 文件存在,并且配置正确。示例 `file_paths.xml` 文件内容如下: ```xml <?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="external_files" path="." /> </paths> ``` ### 代码中使用的 authorities 要一致 在代码中使用 `FileProvider.getUriForFile` 方法时,确保传入的 `authorities` 参数与 `AndroidManifest.xml` 中的 `android:authorities` 一致。示例代码如下: ```kotlin if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { val contentUri: Uri = FileProvider.getUriForFile( requireContext(), "com.qish.tenmentapp.provider", File(filePath) ) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) intent.setDataAndType(contentUri, "application/vnd.android.package-archive") } ``` ### 检查相机拍照权限 如果涉及相机拍照功能,确保在 `AndroidManifest.xml` 中添加了相机权限: ```xml <uses-permission android:name="android.permission.CAMERA" /> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值