秒杀 Flutter 打包 Android APK 包体积突增 ≈2 倍的问题

AGP:Android Gradle Plugin,com.android.tools.build:gradle

省流

android/app/build.gradle 增加对应内容:

对于 AGP 8 以上,增加 packaging

groovy 复制代码
android {
    packaging {
        dex {
            useLegacyPackaging true
        }
        jniLibs {
            useLegacyPackaging true
        }
    }
}

其他版本增加 packagingOptions

groovy 复制代码
android {
    packagingOptions {
        dex {
            useLegacyPackaging true
        }
        jniLibs {
            useLegacyPackaging true
        }
    }
}

原因

目测是为了推进 AppBundle 的使用,所以

自 Android API 23+ 开始,jniLibs 默认不开启压缩: developer.android.com/reference/t...

自 Android API 28+ 开始,dex 默认不开启压缩: developer.android.com/reference/t...

而就算在你没有更改 min/compile/target 的情况下,升级到 8.1 以上的 AGP 时也会默认关闭这些选项。 当你去搜索答案的时候,大部分都是告诉你过期的,调整后没有变化。

秒杀,下次见。

相关推荐
安小牛几秒前
Android 开发汉字转带声调的拼音
android·java·学习·android studio
聚美智数1 分钟前
企业实际控制人查询-公司实控人查询
android·java·javascript
SoaringHeart20 分钟前
Flutter进阶:用OverlayEntry 实现所有弹窗效果
前端·flutter
JMchen1231 小时前
第 3 篇|Android 项目结构解析与第一个界面 —— Hello, CSDN!
android·android studio·android 零基础·android 项目结构·android 界面开发
众少成多积小致巨4 小时前
Soong构建入门
android·go·编译器
笔夏4 小时前
【安卓学习之混淆】记录一些混淆导致闪退
android·学习
阿巴斯甜4 小时前
Kotlin高阶函数和Java 8 lambda的区别:
android
张小潇5 小时前
AOSP15 WMS/AMS系统开发 - WindowManagerService relayout调用流程详解
android
阿巴斯甜5 小时前
Kotlin 高阶函数:
android
之歆5 小时前
Day03_HTML 列表、表格、表单完整指南(下)
android·javascript·html