不要包含未使用的库来释放apk

时间:2016-08-20 14:35:59

标签: android gradle proguard

我在我的android项目gson库中使用:

compile 'com.google.code.gson:gson:2.7'

我不是在app模块中使用它,而是在我的android库中将此库添加到项目中。只有几个类(groupA)使用gson。 Android库是常见的库,用于多个android项目,但在当前的android项目中不使用groupA中的类。

我在应用的build.gradle

android {
 ...
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

我构建了release apk并反编译classes.dex。我在apk中找不到类groupA。没关系。 proguard删除未使用的代码。

不幸的是,我看到了gson个课程。但为什么?为什么proguard不删除gson类? gson实际上没有在项目的发布版本中使用。

2 个答案:

答案 0 :(得分:0)

我认为你应该看看每个版本中包含的gson的proguard文件:https://github.com/google/gson/blob/master/examples/android-proguard-example/proguard.cfg在那里识别其余的类?

答案 1 :(得分:0)

  

为什么proguard不删除gson类?

问它:
使用proguard选项-whyareyoukeeping找出未删除gson类的原因

http://proguard.sourceforge.net/manual/usage.html#shrinkingoptions