如何在 Android Studio 中从 Proguard 中排除外部库 jar?

usu*_*ser 8 proguard minify gradle android-studio android-gradle-plugin

build.gradle我的项目中的一个模块是非常简单的:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 8
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 8
    }

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

dependencies {
    compile project(':timsvc')
    compile files('libs/jsoup-1.8.2.jar')
}
Run Code Online (Sandbox Code Playgroud)

但是,当我构建它时,它无法在外部库中找到符号jsoup-1.8.2.jar

因为timsvc是我的一个模块,有自己的 build.gradle 和 proguard.cfg,我可以控制它的缩小级别,所以我没有任何问题。

但我不能这样做,jsoup-1.8.2.jar因为它是一个外部提供的罐子。

有没有办法将它从 Android Studio 中的 Proguard 中排除?

如果是这样,我该如何实现?

Sha*_*ani 4

最好是查看库文档和自述文件页面(如 Github)。

但一般来说,您可以将 -keep 选项添加到这些外部 jar 中的类的 proguard 配置文件中。例如:

-keep class example.** { *; }
Run Code Online (Sandbox Code Playgroud)

  • 请回复,在 android studio 中哪里添加这些行,是在 'proguard-project.txt' 还是 'proguard-rules.pro' 中? (2认同)