无法获取提供程序 androidx.core.content.FileProvider:java.lang.IllegalArgumentException:缺少 android.support.FILE_PROVIDER_PATHS 元数据?

2024-04-28

我看了很多这样的帖子,但还是不知道问题出在哪里。我尝试更改 file_paths.xml 中的路径和名称。

文件路径.xml:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="pirosfogo_images"
path="storage/emulated/0/pictures/"/>
</paths>

AndroidManifest.xml:

<application
    ...
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.kijevigombooc.pirosfogo.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true"/>
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</application>

java:

void takePhoto(){
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
    {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 110);
    }
    else
    {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (intent.resolveActivity(getPackageManager()) != null)
        {
            File photoFile = createPhotoFile();
            if(photoFile != null){
                pathToFile = photoFile.getAbsolutePath();
                Uri photoURI = FileProvider.getUriForFile(ProfileEdit.this, "adada", photoFile);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
                startActivityForResult(intent, REQUEST_CAMERA);
            }
        }
    }
}
private File createPhotoFile() {
    String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File storageDir = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    File image = null;
    try{
        image = File.createTempFile(name, ".jpg", storageDir);
    } catch(Exception e){}
    return image;
}

为什么我会收到错误消息?


这是因为您指定了<meta-data>标记错误的父级(<application>标签)。应在规定范围内指定<provider>标签。 (下面的两个代码片段显示了差异:)

<application
    ...
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.kijevigombooc.pirosfogo.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>
</application>

VS

<application
    ...
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.kijevigombooc.pirosfogo.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true"/>
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</application>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法获取提供程序 androidx.core.content.FileProvider:java.lang.IllegalArgumentException:缺少 android.support.FILE_PROVIDER_PATHS 元数据? 的相关文章

  • 没有 Listview 的 Android 导航抽屉

    我想创建一个像导航抽屉一样的滑动菜单 但是将会有文本视图和图像视图 就像半活动一样 有可能做到这一点吗 您可以使用NavigationDrawer来自支持库 包括一个FrameLayout作为一个孩子DrawerLayout并使androi
  • 通过拖动块来选择多个项目

    首先 让我告诉你 我对此感到压力很大 因为我什至不知道概念 方法名称 所以我什至无法在谷歌中搜索它 因为我不知道关键字 但我会尝试我的最好解释一下 请随意修改我的内容和标题 我想要实现的是 我的视图组包含许多子视图 或者它可以是 GridV
  • Kotlin 协程阻塞 Android 中的主线程

    我是 Kotlin 和协程的新手 我有一个fun在我的活动及其内部 检查User用户名和密码 如果为真 则返回Users object 一切都好 但是当我按下按钮时 我的活动被阻止并等待响应Users login 我用这个有趣的 priva
  • 温度转换 2 字节

    我很难转换两个字节的温度 我有一个控制单元 温度传感器 我可以在其中获取两个字节的温度消息 1 示例 message 40 25 LSBYTE 40 MSBYTE 25 0 03125 C bit temperature 25C seen
  • Android 改造参数化@Headers

    我正在使用 OAuth 每次发出请求时都需要将 OAuth 令牌放入标头中 我看到 Header注释 但是有没有办法让它参数化 以便我可以在运行时传入 这是概念 Header Authorization OAuth var api vers
  • Android Studio 3.0 - 设置未保存

    我已将 文件 gt 设置 gt 编辑器 gt 代码样式 中的 右边距 列 从默认的 100 增加到 140 不幸的是 每次重新启动 Android Studio 后 该边距都会重置 我还尝试导出和导入我的设置 但这并不能阻止重置右边距 希望
  • BaseAdapter:将 hasStableIds() 设置为 false?

    我有一个ListView使用的子类BaseAdapter 适配器使用项目索引 位置 作为 id 因此 id 不稳定 底层数据的操作之一是在两个数据项之间交换 我需要在我的适配器中覆盖吗hasStableIds to return false
  • 改变换行行为

    我可以在 TextView 中使用 Spannable 创建具有不同外观 下划线 删除线等的跨度 我怎样才能做同样的事情来改变换行行为 特别是 我不希望电子邮件地址在中间换行 我希望它像一个单词一样 I tried 包裹在一起跨度 http
  • 将 try catch finally 块放入另一个 finally 块中

    try catch finally try catch finally 上面的代码好不好 是的 你可以这样做 实际上 在处理想要正确关闭的流时 您甚至需要这样做 InputStream in try catch finally try in
  • 如何知道一个点是否在复杂的 3D 形状内(.ply 文件)

    我正在研究一个Java女巫项目真是要了我的命 经过几天在不同论坛上的研究 寻找我真正需要的东西 我来寻求你的帮助 我的数据 ply 文件 包含由许多三角形组成的 3D 形状 一个点 3D坐标 我想知道这个点是否包含在复杂的 3D 形状内 我
  • 用于验证 InetSocketAddresses 的正则表达式(ipv4/v6 + 端口地址)

    我在寻找testedipv4 和 ipv6 的正则表达式InetSocket地址 http download oracle com javase 6 docs api java net InetSocketAddress html toSt
  • Guava MultiSet 与 Map?

    我对Multiset的理解是一个带有频率的集合 但是我总是可以使用Map来表示频率 还有其他原因使用Multiset吗 优点Multiset
  • 以编程方式安装 Android apk 作为测试框架的一部分

    我正在尝试以编程方式安装 apk 但运气不佳 我正在设置一个针对物理设备的自动化测试框架 并且我希望测试设备在运行测试之前从构建服务器检索最新的 apk 虽然我知道没有通用的方法可以在未经用户同意的情况下实际安装 apk 但我很好奇在开发人
  • 表达式的类型必须是数组类型,但它解析为浮点数

    当我编写 Java 代码时 我遇到了困难 我觉得我不知何故把这个概念弄乱了 就像我不确定这一点 void setScore float sco sco score public void setScore float sco int id
  • 什么是“多重”启动模式?

    On http developer android com guide topics manifest activity element html http developer android com guide topics manife
  • 如何创建克隆重复视图?

    在我的 Android 应用程序中 我想创建重复的ImageButton已经创建的Imagebutton 我想创造新的Imagebutton以编程方式与 XML 文件中已创建的按钮具有相同的宽度 高度 背景 图像源 边距等 简而言之 我想创
  • 如何使用Android Invalidate()

    在我的主要活动中 我定义了两个视图和一个菜单 浏览次数 1 自定义视图游戏 2 按钮btn 菜单 1 打开项目用于打开文件 菜单布局在不同的活动中定义 基本上 当主活动启动时 它会绘制没有任何内容的自定义视图和按钮 然后我使用菜单中的 打开
  • Android studio 问题:找不到广告:AdQuality:未指定

    我已经更新了 Android studio 刚刚打开我的项目 我收到以下错误 您能让我知道如何解决这个问题吗 Error A problem occurred configuring project memoryGameCollection
  • 如何在 Android 上设置 Google Drive API?

    我一直在尝试将 Google Drive 功能集成到我的应用程序中 但我无法使用任何内置功能 因此我相信我要么错过了一个步骤 要么做得不正确 我正在遵循官方的 Google 开发者指南 https developers google com
  • Java:将秒转换为分钟、小时和天[重复]

    这个问题在这里已经有答案了 任务是 输出应如下所示 最好回显输入 您输入了 500 000 秒 即 5 天 18 小时 53 分钟 20 秒 5天18 53 20小时 我该怎么做呢 最容易理解和做到的方法是什么 讲师还说 没有硬编码 我不太

随机推荐