R8 将抽象类的“受保护”方法更改为“公共”方法,不带 -allowaccessmodification 标志

Hay*_*yan 5 android proguard android-studio android-r8

我对 R8 有疑问。在MyLib我有公共摘要MyLibsClass中,我有受保护的方法。从 R8 的魔法中和之后MyChildClass扩展,所有受保护的方法(包括受保护的抽象)都更改为公共方法,当然,我在尝试覆盖受保护的抽象方法时遇到了问题。MyLibsClassMyAppMyLibsClassMyChildClass"attempting to assign weaker access privileges ('protected'); was 'public')

附加信息

gradle-6.0.1

MyLib的build.gradle

release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
Run Code Online (Sandbox Code Playgroud)

proguard-rules.pro

-keep class com.example.mylib.*{
    public protected *; }

-keep class com.example.mylib.*$*{
    public protected *; }
Run Code Online (Sandbox Code Playgroud)

有人遇到过此类问题或知道解决此问题的方法吗?

sgj*_*sse 1

R8 错误跟踪器上也报告了此问题,并在那里解决了。请参阅http://issuetracker.google.com/147447502