【问题标题】:android.support.v4.content.FileProvider not found找不到 android.support.v4.content.FileProvider
【发布时间】:2018-01-31 04:04:40
【问题描述】:

我正在尝试升级一个正常工作的旧应用程序以支持 Android API 26,我需要使用的东西之一是 android.support.v4.content.FileProvider - 但它没有找到。

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="${applicationId}.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>

由于早期的 Android 构建,gradle 文件看起来很简单。像添加依赖一样简单吗?我环顾四周,有人建议添加一个我不明白的 multidex。感谢您的帮助,谢谢!

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'

    defaultConfig {
        applicationId "virtualgs.spaint"
        minSdkVersion 22
        targetSdkVersion 26
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

【问题讨论】:

    标签: java android android-fileprovider


    【解决方案1】:

    从 AndroidX(重新打包的 Android 支持库)开始,路径为 androidx.core.content.FileProvider,因此更新后的提供程序标记为:

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

    Android 支持库现在位于 androidx.* 包层次结构中。

    android.* 现在保留给内置的 Android 系统库。

    【讨论】:

    • 谢谢!知道但没有意识到
    • 请注意,截至 2019 年 10 月,元数据标志仍然是相同的“android.support.FILE_PROVIDER_PATHS”。有关持续更新,请参阅问题stackoverflow.com/q/53390060/1303595
    • 嗨,我试过这个 android:name="androidx.core.content.FileProvider" 从照片中选择图像的意图中获取 Uri。我得到这个uri /1/1/content:/media/external/images/media/183104/ORIGINAL/NONE/image/jpeg/1888135492:如果不使用获取安全异常,则使用文件提供程序获取文件未找到异常。请帮忙。
    • 这是必须更新的答案,它应该出现在问题之后。
    【解决方案2】:

    代替

    import android.support.v4.content.FileProvider;
    

    尝试导入

    import androidx.core.content.FileProvider;
    

    【讨论】:

    • 这帮助我解决了 Android Studio 3.6 中的 gradle 错误
    • 这有助于 Ionic 5 和电容器
    • @HoussemBadri 如果我重建我的项目,我必须再次更改它,有什么建议吗?
    • @HoussemBadri as suggested by ionic 你可以使用jetifier
    • 这个答案非常适合使用 Cordova 插件的电容器。 ..
    【解决方案3】:

    使用以下命令解决了我的问题:

    npm install jetifier --save
    npx jetify
    npx cap sync
    

    【讨论】:

      【解决方案4】:

      我将其替换为较新的版本,即:androidx.core.content.FileProvider

      这对我有用。

      【讨论】:

        【解决方案5】:

        compile 'com.android.support:support-v4:26.1.0' 添加到应用模块的build.gradle 文件中。

        【讨论】:

        • 我遇到了同样的问题并通过实施“com.android.support:support-core-utils:28.0.0”解决了
        • 非常感谢!这才是真正的答案。我们有些人不能使用 API 28+ >.> 其他海报!
        【解决方案6】:

        改成

        public class FileProvider extends androidx.core.content.FileProvider {
        }
        

        【讨论】:

          【解决方案7】:

          安卓系统

          <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/provider_paths" />
          </provider>
          

          【讨论】:

          • 这对我有用!
          【解决方案8】:

          创建你的类

          import android.support.v4.content.FileProvider;
          
          public class GenericFileProvider extends FileProvider {
          }
          

          将此提供程序添加到您的 AndroidManifest.xml 应用程序标记下:

          <provider
                android:name=".utilities.GenericFileProvider"
                android:authorities="${applicationId}.utilities.GenericFileProvider"
                android:exported="false"
                android:grantUriPermissions="true">
                   <meta-data
                       android:name="android.support.FILE_PROVIDER_PATHS"
                       android:resource="@xml/provider_paths" />
          </provider>
          

          【讨论】:

          • 我以为整个问题是找不到“android.support.v4.content.FileProvider”?
          • 创建空类是没用的。
          猜你喜欢
          • 2018-06-01
          • 2018-11-10
          • 2021-11-16
          • 1970-01-01
          • 2014-10-07
          • 2017-02-08
          • 1970-01-01
          • 1970-01-01
          • 2013-05-22
          相关资源
          最近更新 更多