我正在尝试升级一个有效的旧应用程序来支持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'
}
}
}
答案 0 :(得分:30)
代替
import android.support.v4.content.FileProvider;
尝试导入
import androidx.core.content.FileProvider;
答案 1 :(得分:25)
从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系统库。
答案 2 :(得分:8)
我将其替换为较新的版本,即androidx.core.content.FileProvider
这对我有用。
答案 3 :(得分:5)
更改为
public class FileProvider extends androidx.core.content.FileProvider {
}
答案 4 :(得分:4)
对于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>
答案 5 :(得分:3)
将compile 'com.android.support:support-v4:26.1.0'
添加到app模块中的 build.gradle 文件。
答案 6 :(得分:3)
使用以下命令解决了我的问题:
npm install jetifier --save
npx jetify
npx cap sync
答案 7 :(得分:1)
创建班级
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>