我想混淆.aar使用 proguard 进行分发的库,我在互联网上尝试了很多解决方案,但到目前为止没有任何效果,只有一些代码被混淆了。有人可以帮我解决这个问题吗?
在 build.gradle 中,在 defaultConfig 下添加 ConsumerProguardFiles :
android {
compileSdkVersion Integer.parseInt("${COMPILE_SDK}")
buildToolsVersion "${BUILD_TOOLS_VERSION}"
defaultConfig {
targetSdkVersion Integer.parseInt("${TARGET_SDK}")
minSdkVersion Integer.parseInt("${MIN_SDK}")
consumerProguardFiles 'consumer-proguard-rules.pro'
}
}
您在库项目的根文件夹下添加一个名为 Consumer-proguard-rules.pro 的文件。该文件应包含库项目的 build.gradle 中提到的依赖项的所有 proguard 规则。您应该为您的 POJO 类、带有注释的接口以及任何其他您需要防止混淆的类添加保留规则。
如果缩小资源,则应在资源中的 res 下(例如 res/raw)添加 keep.xml 文件。在此文件中,您指定要保留的可绘制对象或布局。您检查您的代码,使用反射通过 getResources().getIdentifier(..) 调用资源,如果是这样,您可以像这样添加可绘制对象。
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:shrinkMode="safe"
tools:keep="@layout/layout1, @drawable/icon1,@drawable/icon2,@drawable/img_*"/>
您可以使用 * 告诉 proguard 将所有以 img_ 开头的可绘制对象保留在可绘制文件夹下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)