问题描述
我有一个空项目(没有任何类,没有活动),只有对 com.google.android.material:material:1.3.0
的依赖才能编译代码(定义了一种使用它的样式)。
我启用了收缩选项,但是,在生成签名 APK 后,即使该应用程序没有代码,该 APK 中有一个 classes.dex 文件,其中包含大量代码。为什么以及如何摆脱这些,以确保 apk 只包含需要的内容,没有额外的膨胀软件?谢谢。
这是扩展后的 apk:
解决方法
对于代码压缩,请打开 Proguard,您可以根据需要选择自定义 Proguard 规则。
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
debug {
}
}
,
尝试 1
打开 .jar
文件 (appodeal.jar
) 并删除所有 .dex
文件。
尝试 2
使用内置检查 Java | Declaration redundancy | Unused declaration
。
要在整个项目上运行它,请转到 Analyze
-> Run inspection by name...
,键入 Unused declaration
并选择所需的范围。然后仔细检查输出并在需要时将一些类标记为入口点。
选择列表中的 Unused declaration
节点并对所有未使用的声明立即执行 Safe delete
操作。