RestrictTo 不限制受限方法的使用

RestrictTo not restricting usage of restricted method

我已经将我的库项目的一个方法注释为受限 @RestrictTo(Scope.LIBRARY) 甚至尝试了 @RestrictTo(Scope.LIBRARY_GROUP) 但这并不能阻止 API 在项目的其他模块中使用。 我什至尝试在两个模块中设置 group=xxxgroup=yyy

正在限制 API 通话

Android 工作室未显示 error/warning。

为受限 APIs 启用了事件 lint。

我什至在调用者模块上使用 ./gradlew lint

尝试过 运行 lint

请在 Github

上查找实现

库模块 - 异步任务处理器

尝试设置不同的组 - 模块示例

尝试使用完全不同的包名 - module myapplication

不确定这里有什么问题请帮助。

Scope.LIBRARY_GROUP 注释的角度来看,如果它们具有相同的 groupId

,则所有模块都是一个库的一部分

Restrict usage to code within the same group of libraries. This corresponds to the gradle group ID.

要通过 Scope.LIBRARY 限制 API 您还需要使用不同的 artifactId

Restrict usage to code within the same library (e.g. the same gradle group ID and artifact ID).


需要添加库作为外部依赖。您需要构建和部署库工件:

// follow answer  to build 
artifact
group = 'com.umang.asyncprocessor'
version = '1.0'

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://[path to you repository]")
            // repository(url: "file://C:/Users/Sergey/.m2/repository")
        }
    }
}

您可以将工件部署到本地 Maven 存储库(不要忘记将 mavenLocal() 添加到项目构建脚本)。

然后在应用build.gradle文件中添加来自编译库的依赖:

implementation 'com.umang.asyncprocessor:async-task-processor:1.0'

不是来自项目模块:

// it doesn't work!
implementation project(path: ':async-task-processor')

我已使用适当的配置创建 pull request 到您的存储库。