MAUI迁移报错:无法获取androidx.support.v4.content.FileProvider
首先明确:.NET MAUI Android完全依赖AndroidX,旧的Android Support Library已被彻底废弃,你的迁移方向是对的,但配置里还有两处关键错误:
错误1:FileProvider类名写错
你当前配置的androidx.support.v4.content.FileProvider是错误的,AndroidX中正确的类名是androidx.core.content.FileProvider(去掉了中间的support层级)。
错误2:Meta-data名称未同步更新
meta-data里的android.support.FILE_PROVIDER_PATHS是旧Support Library的命名,AndroidX对应的名称是androidx.core.content.FileProvider.FILE_PROVIDER_PATHS。
正确的AndroidManifest配置
替换你现有的provider节点为以下内容:
<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="androidx.core.content.FileProvider.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>
注:给authorities加.fileprovider后缀是为了避免和其他组件权限冲突,属于最佳实践,不是强制要求
额外检查
如果配置修正后仍报错,确认你的MAUI项目是否包含AndroidX Core依赖:
在项目的.csproj文件中添加(如果没有的话):
<ItemGroup> <PackageReference Include="Xamarin.AndroidX.Core" Version="1.12.0.1" /> </ItemGroup>
MAUI默认会自动引入基础AndroidX依赖,但如果有自定义依赖冲突可能需要手动指定。
关于MAUI与AndroidX的疑惑
MAUI从设计之初就基于AndroidX构建,Xamarin.Android在后期版本也已经全面迁移到AndroidX,所以不管是新MAUI项目还是从Xamarin迁移的项目,都必须使用AndroidX组件,旧的Support Library完全不兼容。
内容的提问来源于stack exchange,提问作者angleUr

