@Keep annotation和Keep规则不适用于通过启用Android R8模糊处理嵌套在类或其他接口中的接口





我在Android库中使用Android R8模糊处理。在将AAR文件包含在库的客户端项目的应用程序模块中之后,我将获得在类或其他接口中声明的接口的编译时错误。

例如,其中一个公共接口是MyPublicInterface:

interface InterfaceA {
fun a()
}
interface InterfaceB {
fun b()
}
class ClassA {
interface NestedInterfaceOfA {
fun nia()
}
}
interface MyPublicInterface : InterfaceA, InterfaceB, ClassA.NestedInterfaceOfA

接口MyPublicInterface由应用模块使用。

我在编译应用程序模块时遇到以下错误:

"Cannot access ClassA$NestedInterfaceOfA which is a supertype of MyPublicInterface. Please make sure you have the required dependencies in the classpath."
"unresolved supertypes ClassA$NestedInterfaceOfA"

我尝试了以下所有规则:

-keepclasseswithmembers public interface * {
*;
}
-keepclasseswithmembernames public interface * {
*;
}
-keep public interface *$* {
*;
}
-keepclasseswithmembers public interface *$* {
*;
}
-keepclasseswithmembernames public interface *$* {
*;
}
-keepattributes InnerClasses, Signature

我尝试在代码中显式添加@Keep注释,并为特定接口显式添加Keep规则。但它没有起作用。

注意:库的整个代码都在Kotlin中。

上面指定的问题现在已经解决。我使用了以下解决方案:

安卓工作室版本:4.1.x

Android工具版本:classpath 'com.android.tools.build:gradle:4.1.1'(版本4.0.2出现问题(

渐变版本:6.5.1(版本6.3出现问题(

相关内容

  • 没有找到相关文章

最新更新