【问题标题】:Migrating to AndroidX - android.support.FILE_PROVIDER_PATHS location迁移到 AndroidX - android.support.FILE_PROVIDER_PATHS 位置
【发布时间】:2026-01-30 19:55:02
【问题描述】:

我正在将一个项目迁移到 AndroidX,但遇到了一个问题。

<provider
    android:name="androidx.core.content.FileProvider" <--- Changed to X lib
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS" <---- ISSUE
        android:resource="@xml/file_paths" />
</provider>

我搜索了整个互联网,但找不到解决方案:我应该为 AndroidX 添加什么而不是 android.support.FILE_PROVIDER_PATHS?

【问题讨论】:

  • 看起来还是一样——android.googlesource.com/platform/frameworks/support/+/…。你有什么问题?
  • 你是对的。我没有问题,但我想确保这不会在某个时候崩溃,因为我在那里看到了“support”关键字,我认为 Android Studio 没有正确进行迁移(例如,对于 android .support.design.widget.BottomNavigationView 它不起作用。我必须手动完成。)感谢您的回答!
  • 能否请您说明获取图像的方法。
  • 到目前为止,来自AndroidX 包的FileProvider 类有一个名为META_DATA_FILE_PROVIDER_PATHS 的最终静态字符串变量,它引用了支持库中使用的旧字符串:"android.support.FILE_PROVIDER_PATHS"。因此,我想使用 xml 文件是可以的。
  • 在 android manifest 中已经是这样了 (androidx.core.content.FileProvider),但是在 fileprovider.java 文件中它是不同的 android.support.v4.content.FileProvider => 我总是需要手动更改此项以进行 android 构建

标签: android androidx


【解决方案1】:

还是一样。 android.support.FILE_PROVIDER_PATHS 在示例中是 here

【讨论】:

    【解决方案2】:
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.mydomain.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>
    

    对于 androidx,元数据应该是这样的。从 android studio 签出:https://developer.android.com/reference/androidx/core/content/FileProvider.html

    【讨论】: