【问题标题】:How to enable proguard for only one module如何只为一个模块启用 proguard
【发布时间】:2017-11-17 12:03:14
【问题描述】:

我有一个带有 payumoney 集成的支付应用程序。在我添加proguard之前它工作正常。最近我在我的 build.gradle 文件(模块:app)中添加了 Proguard

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

当我继续付款时,此应用程序关闭后。当我将 minifyEnabled 更改为 false 时,它工作正常。

以下是我的模块:PayuMoneySdk Build.gradle 文件

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

我该如何解决这个问题?我不能禁用proguard。

我可以只对 Module:app 启用 proguard 吗?它会解决问题吗?

我是编程新手。请帮忙!!

【问题讨论】:

    标签: android security sdk android-proguard payumoney


    【解决方案1】:

    解决方法是查找需要豁免的方法和类,并将它们添加到proguard规则中,如下所示..

    -keep class com.mm.** {*;}
    -keep class com.company.** {*;}
    -keepclassmembers  class com.mm.** {*;}
    -keepclassmembers  class com.company.** {*;}
    

    【讨论】:

    • 我有 2 个 proguard.pro 文件。一个用于 Module:app,另一个用于 Module:PayuMoneySdk。我需要在哪里编写此代码?我可以从 proguard 中免除一个完整的模块吗?
    • 成功了。谢谢!!
    【解决方案2】:
    add below lines in proguard-rule.pro file
    
     -dontwarn okio.**
     # Platform calls Class.forName on types which do not exist on Android to determine platform.
     -dontnote retrofit2.Platform
     # Platform used when running on Java 8 VMs. Will not be used at runtime.
     -dontwarn retrofit2.Platform$Java8
     # Retain generic type information for use by reflection by converters and adapters.
     -keepattributes Signature
     # Retain declared checked exceptions for use by a Proxy instance.
     -keepattributes Exceptions
    
    
    -keep class com.** { *; }
    

    【讨论】:

    • 我有 2 个 proguard.pro 文件。一个用于 Module:app,另一个用于 Module:PayuMoneySdk。我需要在哪里编写这段代码?
    • 内部模块应用
    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多