概述
这个原因很简单,妈的,网上没有用太多相关的文章,自己mark一下,这个错误是检查AndroidManifest.xml,里面的
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="包名.fileprovider"
android:exported="false"
android:grantUriPermissions="true"
>
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
尤其注意android:authorities="包名.fileprovider",注意大小写,
把带包名的数据 android:authorities="${applicationId}.fileprovider
现在10.0读取不到内存卡,需要额外再增加一行代码,别问为什么,只需要ctrl+c和ctrl+v
android:requestLegacyExternalStorage="true"
补充说明一下,
针对Android11,google官方的意思是:app卸载后,app相关的一切下载文件都要删除,这时还有两种解决方案,
第一:像
Environment.getDataDirectory()或者
Environment...相关的暂时不要用,要用getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).
getAbsolutePath(),尽量用getFilesDir()之类的api
第二,就是降低targetSdkVersion低于30就行
再次附上files_paths.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<paths>
<files-path
name="files"
path="." />
<cache-path
name="cache"
path="." />
<external-path
name="camera_photos"
path="." />
<external-files-path
name="external_file_path"
path="." />
<!--代表app 外部存储区域根目录下的文件 Context.getExternalCacheDir目录下的目录-->
<external-cache-path
name="external_cache_path"
path="." />
<external-path
name="beta_external_path"
path="." />
<external-path
name="beta_external_files_path"
path="." />
<!--配置root-path。这样子可以读取到sd卡和一些应用分身的目录,否则微信分身保存的图片,就会导致 java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/999/tencent/MicroMsg/WeiXin/export1544062754693.jpg,在小米6的手机上微信分身有这个crash,华为没有
-->
<root-path
name="root_path"
path="." />
</paths>
</resources><!--<root-path/> :代表设备的根目录new File("/")-->
<!--<files-path/> : 代表context.getFilesDir()-->
<!--<cache-path/> : 代表context.getCacheDir()-->
<!--<external-path/> : 代表Environment.getExternalStorageDirectory()-->
<!--<external-files-path/> : 代表context.getExternalFilesDirs()-->
<!--<external-cache-path/> : 代表getExternalCacheDirs()-->
<!--path节点支持name和path两个属性,配置了path属性就相当于在相应路径下子目录,-->
<!--https://www.jianshu.com/p/6463cfea9d7f-->
最后
以上就是俊逸发带为你收集整理的Couldn‘t find meta-data for provider with authority的全部内容,希望文章能够帮你解决Couldn‘t find meta-data for provider with authority所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复