首页 文章

如何在ProGuard中使用-dontwarn?

提问于
浏览
32

我正在使用android studio来构建调试和发布应用程序 . 当我构建调试/发布应用程序时

./gradlew assembleDebug

./gradlew assembleRelease

这两个版本都是完美创建并运行的 . 显示调试或发布的相应对话框

现在我在build.gradle中添加了proguard详细信息:

signingConfigs {
    myConfig {
           storeFile file("keystore.jks")
           storePassword "abc123!"
           keyAlias "androidreleasekey"
           keyPassword "pqrs123!"
    }
}

buildTypes {
    release {
        runProguard true
        proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
        signingConfig signingConfigs.myConfig
    }
}
productFlavors {
    defaultFlavor {
        proguardFile 'proguard-rules.txt'
    }
}

现在它在事件日志中显示错误为

警告:有7个未解析的类或接口引用 . 您可能需要添加缺少的库jar或更新其版本 . 如果您的代码在没有缺少类的情况下正常工作,则可以使用“-dontwarn”选项来禁止警告 . (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)警告:程序类成员有2个未解析的引用 . 您的输入类似乎不一致 . 您可能需要重新编译代码 . (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember):Flash销售:proguardDefaultFlavorRelease FAILED

如果我将runProguard选项设置为false然后运行它 .

我有这些问题:

1)用runProguard = false发布apk是否可以?

2)如何在创建发布版本时使用dontwarn?

1 回答

  • 26

    当我向项目添加新的lib时通常这我需要为Progaurd定义 .

    假设我正在使用Twitter4J lib,那么我就这样添加dontwarn .

    -keep class twitter4j . * {*; } -dontwarn twitter4j . *

相关问题