秒杀 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 时也会默认关闭这些选项。 当你去搜索答案的时候,大部分都是告诉你过期的,调整后没有变化。

秒杀,下次见。

相关推荐
执明wa7 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder7 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农7 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户69371750013848 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr9 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
sg_knight9 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
爱笑鱼9 小时前
Binder(四):ioctl(BINDER_WRITE_READ) 之后,事务怎样到达目标进程?
android
AFinalStone9 小时前
Android 7系统休眠唤醒(二)开机全链路—BootROM到Launcher
android·电源管理·休眠唤醒
Mr YiRan9 小时前
Android NDK开发之统计到未被回收的图片
android