繁体   English   中英

Proguard / R8 规则保持包私有 class 成员

[英]Proguard / R8 rule to keep package-private class members

为了在 Android Java 项目中编译 an.aar 库,我需要保护 class 的 static 包私有方法以防止被 R8 删除:

public final class MyClass {
...
    static void myStaticMethod(...){
    ...
    }
...
}

我尝试了这样的 Proguard / R8 规则:

-keep class * {
    public protected *;
}

但它没有用,该方法被淘汰了。 包私有方法是否有特殊关键字?

当然,使用@Keep注释标记方法的解决方法确实有效,但这让我不得不手动查找所有包私有方法。

最后 RTFM 是解决方案:)阅读混淆手册的“类规范”部分给了我正确的想法:

-keep class * {
    !private *;
}

这保留了所有没有私有属性的东西,这在我的例子中是一个足够精确的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM