我一直试图告诉proguard为aar文件中使用的任何内容重命名类。
假设我在AAR文件中定义了此文件
package com.myweb.lib.common;
import android.graphics.Color;
import java.util.Random;
public class ColorUtil
{
public static int randomColor()
{
Random localRandom = new Random();
return Color.argb(255, localRandom.nextInt(256), localRandom.nextInt(256), localRandom.nextInt(256));
}
}
没有为AAR定义的Proguard文件。
我的proguard规则是为消费者应用
定义的-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-flattenpackagehierarchy ''
-keep class com.myweb.lib.networkservices.models.** { *; }
-keep class com.myweb.helpmate.http.** { *; }
-keep class android.location.** { *; }
gradle构建如下:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFile 'proguard-gson.pro'
proguardFile 'proguard-square-retrofit2.pro'
proguardFile 'proguard-square-okio.pro'
proguardFile 'proguard-rules.pro'
proguardFile 'proguard-support-v7-appcompat.pro'
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
signingConfig signingConfigs.release
}
}
然而,当我反编译时,我可以看到这个类。
我想要实现的目标是:
因此很难将它的使用方式联系起来。
答案 0 :(得分:0)
您不能保护已经创建的aar文件。您或其他人创建的aar文件的库模块需要进行proguard配置设置,以便可以在其module-name / build / outputs / aar目录下输出混淆的aar文件。