Android支持注释@StringDef在.aar文件中导出时无法正常工作

Ben*_*654 7 android annotations android-library android-support-library

我遇到了@StringDef支持注释的问题.当它们所在的库是项目的一部分(不是.aar文件)时,它们工作得非常好,但是当我将库编译为.aar文件并尝试在另一个项目中使用它们时,注释不会被强制执行.

http://tools.android.com/tech-docs/support-annotations

在"使用您自己的库中的注释"部分中,它说

如果您使用这些注释注释自己的库,并使用Gradle构建AAR工件,则在构建时,Android Gradle插件将提取注释信息并将其发送到您的AAR文件中以供库的客户端使用.您可以查看记录信息的AAR内的annotations.zip文件; 这是使用IntelliJ的外部注释XML格式.这是必要的,因为.class文件不能包含足够的注释信息来处理上面的@IntDef信息; 请注意,我们需要记录对常量本身的引用,而不是其值.如果(并且仅当)您的项目依赖于注释支持库,Android Gradle插件将作为构建的一部分运行提取注释任务.(请注意,只有源保留注释放在.aar文件中;类级别保留在classes.jar中.)

我打开了.aar文件,里面有annotations.zip文件,如果我提取它,就会有一个包含所有正确注释的XML文件.

我正在使用@Retention(RetentionPolicy.SOURCE)它所说的我需要的东西

我试图在.aar文件中使用这些应用程序的应用程序确实依赖于支持库 compile 'com.android.support:support-annotations:23.1.1

我缺少什么使这些工作?

编辑:我仔细检查了使用这些.aar文件的项目是否也打开了注释处理器.

Ben*_*654 1

问题是接口是私有的。

由于某种原因,当库项目由其宿主项目编译为子模块时,私有接口可以正常工作。

当库项目用作 .aar 文件时,私有接口不再起作用。