.NET MAUI生成APK无法在Android10.0安装,如何适配该版本?
解决.NET MAUI(.NET 6)APK无法在Android 10(API 29)安装的问题
1. 手动修改项目配置文件
部分MAUI项目模板默认会把最低Android版本设为API 31,你可以直接编辑项目的.csproj文件调整:
- 找到
<PropertyGroup>节点下的AndroidMinSdkVersion,将值改为29(若要兼容更低版本,可设为21对应Android 5.0) AndroidTargetFramework可保留为net6.0-android31.0(目标框架版本高于最低版本即可)
修改后的配置示例:
<PropertyGroup> <TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks> <AndroidTargetFramework>net6.0-android31.0</AndroidTargetFramework> <AndroidMinSdkVersion>29</AndroidMinSdkVersion> <AndroidCompileSdkVersion>33</AndroidCompileSdkVersion> </PropertyGroup>
2. 排查API兼容性问题
如果项目里用了Android 12(API 31)及以上的专属API,必须做版本适配:
- 比如通知权限
POST_NOTIFICATIONS仅在Android 13+需要申请,低版本无需处理,可通过条件编译区分:
#if ANDROID33_0_OR_GREATER // 申请POST_NOTIFICATIONS权限的代码 #endif
- 检查所有依赖库,确保它们也支持API 29及以下版本,避免引入高版本专属依赖
3. 重新构建签名APK
配置修改完成后,重新构建发布版本:
- 先清理项目:
dotnet clean - 构建并签名APK(按需替换签名信息):
dotnet publish -f net6.0-android -c Release /p:AndroidKeyStore=true /p:AndroidSigningKeyStore=your_keystore.keystore /p:AndroidSigningKeyAlias=your_key_alias /p:AndroidSigningKeyPass=your_key_pass /p:AndroidSigningStorePass=your_store_pass
构建完成后,生成的APK即可在Android 10设备上安装。
内容的提问来源于stack exchange,提问作者Gonzalo Martinez
相关产品推荐
相关产品推荐

