J'essaie de mettre à niveau une ancienne application fonctionnelle pour prendre en charge Android API 26, et l'une des choses que je dois utiliser est Android.support.v4.content.FileProvider - mais elle n'a pas été trouvée.
<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>
En raison de la première Android, le fichier gradle semble simple. Est-ce aussi simple que d'ajouter une dépendance? J'ai regardé autour et certains ont suggéré d'ajouter un multidex que je ne comprends pas. Toute aide est apprécié, merci!
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'
}
}
}
ajouter compile 'com.Android.support:support-v4:26.1.0'
à build.gradle fichier dans le module d'application.
À partir d'AndroidX (la bibliothèque de support reconditionnée Android), le chemin d'accès est androidx.core.content.FileProvider
donc la balise de fournisseur mise à jour serait:
<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>
Les bibliothèques de support Android sont maintenant dans le androidx.*
hiérarchie des packages.
Android.*
est désormais réservé aux bibliothèques système intégrées Android.
Créez votre classe
import Android.support.v4.content.FileProvider;
public class GenericFileProvider extends FileProvider {
}
Ajoutez ce fournisseur dans votre AndroidManifest.xml sous la balise d'application:
<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>
Je l'ai remplacé par la nouvelle version, qui est: androidx.core.content.FileProvider
Cela a fonctionné pour moi.