引入flutter_downloader后Flutter Release APK无法在Android 13安装
解决引入flutter_downloader后Android 13设备无法安装Release APK的问题
启用Release包签名
Android 13对未签名的安装包有严格限制,你的gradle配置中Release签名逻辑被注释,这会导致生成的APK无法正常安装。请取消signingConfigs和buildTypes中的注释,确保Release包被正确签名:signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } }同时确保
key.properties文件存在且配置正确,包含签名密钥的完整信息。适配flutter_downloader的Android 13配置规则
引入flutter_downloader后,需在AndroidManifest.xml中补充必要配置以适配Android 13的要求:- 添加Android 13专属存储权限:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> - 为flutter_downloader相关组件声明
android:exported属性(Android 12+强制要求):
针对下载服务、广播接收器等组件,添加android:exported="true"或"false"(根据组件用途调整),示例:<service android:name="vn.hunghd.flutterdownloader.DownloadService" android:exported="false" android:permission="android.permission.FOREGROUND_SERVICE"> <intent-filter> <action android:name="vn.hunghd.flutterdownloader.action.DOWNLOAD_COMPLETE"/> <action android:name="vn.hunghd.flutterdownloader.action.UPDATE_PROGRESS"/> </intent-filter> </service>
- 添加Android 13专属存储权限:
更新flutter_downloader到兼容版本
检查pubspec.yaml中flutter_downloader的版本,确保它支持Android 13(compileSdk 33)。建议更新到最新稳定版,执行命令:flutter pub upgrade flutter_downloader验证APK完整性
重新构建Release包后,用Android SDK的aapt工具检查APK是否存在无效配置:aapt dump badging build/app/outputs/flutter-apk/app-release.apk查看输出中的错误信息,比如权限冲突、组件配置错误等,针对性修复。
彻底清理后重新构建
执行以下命令清理缓存并重新打包:flutter clean rm -rf ~/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-* flutter pub get flutter build apk --release
内容的提问来源于stack exchange,提问作者Hakob Beglaryan
相关产品推荐
相关产品推荐

