android.support.v4.content.FileProvider not found



我正在尝试升级一个工作旧的应用程序以支持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'
        }
    }
}

从 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 系统库。

而不是

import android.support.v4.content.FileProvider;

尝试导入

import androidx.core.content.FileProvider;

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

npm install jetifier --save-dev
npx jetify
npx cap sync

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

我用较新的版本替换了它,即:androidx.core.content.FileProvider

这对我有用。

更改为

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

for androidx

<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>

创建您的类

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>

离子用户,

ionic cordova rm android

执行此操作,然后重新生成应用。

如果您在使用多个依赖项时遇到此问题,可以将整个项目迁移到 Android X。

为此,请

右键单击项目中的"app"文件夹,选择"重构",然后选择"迁移到Android X"。

这是一张图片:

用于迁移 Android X 项目的对话框菜单

最新更新