使用Proguard时APK中lib文件体积大幅增大,如何解决?
解决ProGuard导致APK中lib文件夹体积增大的问题
检查NDK编译配置:ProGuard本身不处理Native库,lib体积增大往往是NDK编译阶段没做优化。release包要开启编译优化,同时移除调试符号,在gradle中配置:
android { buildTypes { release { ndk { debugSymbolLevel = 'NONE' // 移除调试符号 abiFilters 'armeabi-v7a', 'arm64-v8a' // 只保留目标设备需要的ABI架构,删掉不必要的x86、x86_64等 optimizationLevel = 'O2' // 开启编译优化 } } } }排查重复依赖:用
./gradlew app:dependencies命令查看依赖树,确认是否有不同依赖包重复引入了同一Native库的多个版本,冗余版本会导致lib文件夹体积膨胀,需要排除多余的依赖。检查R8/ProGuard的Full Mode配置:如果开启了
android.enableR8.fullMode=true,可能会影响Native库的打包逻辑,若不需要Full Mode的严格优化,可关闭该配置,或者针对性添加Native库相关的保留规则到proguard-rules.pro:-keep class com.yourpackage.native.** { *; } -dontwarn com.yourpackage.native.**分析APK内容:用Android Studio的APK Analyzer查看lib文件夹下的文件,确认是单个库文件变大还是新增了冗余文件,比如是否误打包了debug版的Native库到release包中。
内容的提问来源于stack exchange,提问作者TimRashard
相关产品推荐
相关产品推荐

