- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经将我的图书馆项目的一个方法注释为受限 @RestrictTo(Scope.LIBRARY)
甚至尝试了 @RestrictTo(Scope.LIBRARY_GROUP)
但这并没有阻止 API在项目的其他模块中使用。我什至尝试在两个模块中设置 group=xxx
和 group=yyy
。
限制API调用
Android Studio 没有显示错误/警告。
我什至尝试使用 ./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).
需要添加库作为外部依赖。您需要构建和部署库 Artifact :
// follow answer https://stackoverflow.com/a/28361663/3926506 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")
}
}
}
例如,您可以将 Artifact 部署到本地 Maven 存储库(不要忘记将 mavenLocal()
添加到项目构建脚本中)。
然后在app build.gradle文件中添加编译库的依赖:
implementation 'com.umang.asyncprocessor:async-task-processor:1.0'
不是来自项目模块:
// it doesn't work!
implementation project(path: ':async-task-processor')
我创建了 pull request使用适当的配置到您的存储库。
关于android - RestrictTo 不限制受限方法的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069908/
我已经将我的图书馆项目的一个方法注释为受限 @RestrictTo(Scope.LIBRARY) 甚至尝试了 @RestrictTo(Scope.LIBRARY_GROUP) 但这并没有阻止 API在
我在理解 android 支持注释时遇到了“@RestrictTo”注释;这解释了开发人员可以定义的不同范围。任何人都可以通过一些示例详细解释如何使用这些注释吗? 任何线索将不胜感激! 最佳答案 它用
我发现了 RoomSQLiteQuery 类的一个很好的用法,但它用 @RestrictTo 注释。甚至认为 IDE 会显示警告,它可以正常编译,而且看起来也可以正常工作。 @RestrictTo 只
我是一名优秀的程序员,十分优秀!