如何覆盖其他混淆规则
How to override other proguard rules
我希望删除具有以下签名的 class A
package com.example
class A : Base {}
来自 thirdpartylib.aar
自带的一套 proguard/r8 规则,其中之一是
-keep public class * extends com.example.Base
但是我希望删除 class A,因为我知道这不会被使用。我如何实现此覆盖。
下面的规则不起作用,因为 whyareyoukeeping
发出上面的规则。
-keep class !com.example.A
我想弄清楚混淆规则是否有优先权。是否可以将规则声明为更高优先级?提前致谢。
首先规则的“优先级”就是最宽泛的规则优先。因此,如果一条规则保留了某些东西,则另一条规则不可能将其拿走。
现在覆盖 jar
/aar
中包含的规则的唯一方法是分叉它并替换规则。可以通过具有替换版本的本地 Maven 存储库来做到这一点。
但是,AGP 7.3 将包含一个覆盖库中规则的功能,有关详细信息,请参阅 https://issuetracker.google.com/37097003。可以通过 AGP 7.3 金丝雀来试用。
我希望删除具有以下签名的 class A
package com.example
class A : Base {}
来自 thirdpartylib.aar
自带的一套 proguard/r8 规则,其中之一是
-keep public class * extends com.example.Base
但是我希望删除 class A,因为我知道这不会被使用。我如何实现此覆盖。
下面的规则不起作用,因为 whyareyoukeeping
发出上面的规则。
-keep class !com.example.A
我想弄清楚混淆规则是否有优先权。是否可以将规则声明为更高优先级?提前致谢。
首先规则的“优先级”就是最宽泛的规则优先。因此,如果一条规则保留了某些东西,则另一条规则不可能将其拿走。
现在覆盖 jar
/aar
中包含的规则的唯一方法是分叉它并替换规则。可以通过具有替换版本的本地 Maven 存储库来做到这一点。
但是,AGP 7.3 将包含一个覆盖库中规则的功能,有关详细信息,请参阅 https://issuetracker.google.com/37097003。可以通过 AGP 7.3 金丝雀来试用。