如何只为一个模块启用proguard

时间:2017-11-17 12:03:14

标签: android security sdk android-proguard payumoney

我有付款应用程序与payumoney集成。它工作正常,直到我添加了proguard。最近我将Proguard添加到我的build.gradle文件(Module:app)

  ` 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。

我可以将proguard启用到Module:app吗?它会解决这个问题吗?

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

2 个答案:

答案 0 :(得分:1)

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.** { *; }

答案 1 :(得分:1)

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

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