android.support.v4.content.FileProvider не найден

Я пытаюсь обновить старое приложение для поддержки 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 кажется простым. Это так же просто, как добавление зависимости? Я смотрю вокруг, и некоторые предложили добавить мультидекс, который я не понимаю. Любая помощь приветствуется, спасибо!

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

Ответы

Ответ 1

add compile 'com.android.support:support-v4:26.1.0' для сборки файла.gradle в модуле приложения.

Ответ 2

Начиная с 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.

Ответ 3

Я заменил его более новой версией: androidx.core.content.FileProvider

Это сработало для меня.

Ответ 4

Создайте свой класс

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>