You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin项目上传Android App Bundle至Google Play遇150MB限制问题

解决Android App Bundle(AAB)超出Google Play 150MB大小限制的方案
  • 先定位体积膨胀的根源
    直接用Android Studio的Build > Analyze APK(该功能也支持AAB)打开构建产物,查看各模块、文件的大小占比,重点排查:res目录下的高清图/未压缩PNG、assets目录里的冗余测试文件、第三方依赖库、原生SO文件。

  • 资源文件瘦身是核心优化点

    • 图片格式转换:右键Android Studio里的图片选择Convert to WebP批量转换,体积可压缩一半以上;能用VectorDrawable矢量图的场景,就别用位图,更省空间还适配全分辨率。
    • 开启资源缩减与代码混淆:在Module级build.gradle中添加以下配置,自动移除未引用资源+混淆代码缩小体积:
      android {
          buildTypes {
              release {
                  shrinkResources true
                  minifyEnabled true
                  proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
              }
          }
      }
      
    • 只打包必要资源:通过resConfigs指定仅保留目标市场的语言和屏幕密度资源,比如只留中文和xxhdpi:
      android {
          defaultConfig {
              resConfigs "zh-rCN", "xxhdpi"
          }
      }
      
  • 清理冗余第三方依赖

    • 删除项目中已弃用、未使用的第三方库,比如之前测试过但最终没用到的SDK。
    • 用轻量替代方案替换体积过大的库,比如根据项目需求用OkHttp替换Volley,或仅引入库的核心模块而非完整包。
  • 优化原生SO文件

    • 仅打包目标架构的SO文件,比如只保留arm64-v8a和armeabi-v7a(覆盖绝大多数设备),在build.gradle中配置:
      android {
          defaultConfig {
              ndk {
                  abiFilters 'armeabi-v7a', 'arm64-v8a'
              }
          }
      }
      
    • 检查SO文件是否存在重复或未优化的版本,确保使用编译后的精简版。
  • 无法精简时拆分模块
    如果存在离线数据包、大型游戏资源这类无法压缩的大体积内容,将其做成Feature Module,借助Google Play的Play Feature Delivery实现按需加载,让主AAB体积控制在150MB以内。

  • 最后重新构建验证
    先执行Build > Clean Project,再通过Build > Generate Signed Bundle/APK生成签名AAB,之后再次用Analyze功能确认体积是否达标。

内容的提问来源于stack exchange,提问作者hope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:25:21