未解决的类“FileProvider”
Posted
技术标签:
【中文标题】未解决的类“FileProvider”【英文标题】:Unresolved class 'FileProvider' 【发布时间】:2019-07-21 16:36:16 【问题描述】:我正在尝试在安卓设备上拍照并关注this tutorial。
下面的代码在android.support.v4.content.FileProvider
上给我一个错误。 Android 工作室说 Unresolved class 'FileProvider'。
我有以下 AndroidManifest.xml 文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.camera">
<uses-permission android:name="android.permission.CAMERA" />
<application
android:label="@string/app_name">
<activity android:name=".LandingPageActivity" />
<provider
android:name="android.support.v4.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>
</application>
</manifest>
我已将implementation 'com.android.support:support-v4:28.0.0'
添加到我的build.gradle
文件中。
apply plugin: 'com.android.application'
android
compileSdkVersion 28
defaultConfig
applicationId "com.example.camera"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
dependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
...others
implementation 'com.android.support:support-v4:28.0.0'
apply plugin: 'com.google.gms.google-services'
我试过this solution,但没有成功。
【问题讨论】:
由于您使用的是 androidx 依赖项,因此不应使用低于 android x 的任何内容,例如 support-v4:28。使用这个:实现 'androidx.legacy:legacy-support-core-utils:1.0.0' 代替。 【参考方案1】:您正在使用AndroidX依赖项(例如您的androidx.appcompat
依赖项),因此您需要使用AndroidX FileProvider,它的包名称为androidx.core.content.FileProvider
:
<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>
【讨论】:
【参考方案2】:<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/provider_paths" />
</provider>
【讨论】:
以上是关于未解决的类“FileProvider”的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.ClassNotFoundException:在Adone AIR本机扩展中未找到类“android.support.v4.content.FileProvider”错误(示例代码
FileProvider解决FileUriExposedException
错误记录Android 文件分享 FileProvider 设置错误
multidex Unable to get provider com.vivo.upgrade.library.provider.FileProvider