添加google_mobile_ads后Flutter无法构建Google Play应用包(JVM内存不足)
解决Flutter添加google_mobile_ads后Release打包Gradle内存耗尽问题
可行解决方案
1. 优化Gradle内存与构建配置
检查项目根目录和android/目录下的gradle.properties,补充或调整以下参数:
# 根目录gradle.properties org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.daemon=true org.gradle.parallel=true org.gradle.configureondemand=true org.gradle.caching=true # android/gradle.properties android.enableR8.fullMode=false android.useAndroidX=true android.enableJetifier=true
根据自身系统内存调整-Xmx值,比如8G内存可设为-Xmx6G
2. 清理构建缓存
缓存损坏可能导致内存异常占用,执行以下命令清理:
flutter clean cd android gradlew cleanBuildCache cd .. flutter pub get
3. 规范google_mobile_ads依赖配置
- 确保
pubspec.yaml中使用稳定版依赖,避免开发预览版:dependencies: google_mobile_ads: ^2.4.0 # 替换为最新稳定版 - 检查
android/app/build.gradle,统一依赖管理避免冲突:dependencies { implementation platform('com.google.android.gms:play-services-bom:20.1.0') implementation 'com.google.android.gms:play-services-ads' }
4. 切换到Flutter Stable通道
当前使用的Master开发通道存在不稳定因素,切换到稳定版:
flutter channel stable flutter upgrade
5. 匹配Gradle与Android Gradle插件版本
在android/build.gradle中更新插件版本,确保与Gradle版本兼容:
buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 稳定版插件 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20" } }
同时在android/gradle/wrapper/gradle-wrapper.properties中对应Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
6. 临时关闭R8混淆排查问题
若Release打包的混淆步骤占用过多内存,可临时关闭R8验证:
android { buildTypes { release { minifyEnabled false shrinkResources false // 注释掉proguardFiles相关配置 } } }
如果能成功打包,说明是R8优化导致的内存问题,后续可尝试升级Gradle版本或调整R8配置。
7. 释放系统内存
关闭浏览器、其他IDE等占用大量内存的程序,给Gradle构建预留足够系统资源。
内容的提问来源于stack exchange,提问作者Ahmed Mohd
相关产品推荐
相关产品推荐

