我正在开发一个库来使用注释和处理器生成类。生成的类应使用谷歌的Gson
库。
我的问题是:我应该在哪里添加Gson依赖项?我目前正在将它添加到处理器build.gradle中,但是当生成类时,找不到Gson并且Android Studio正在建议将其添加到app模块。
处理器的build.gradle :
implementation project(':lib-annotation')
implementation 'com.squareup:javapoet:1.9.0'
implementation 'com.google.code.gson:gson:2.8.1'
implementation 'com.google.auto.service:auto-service:1.0-rc3'
应用的build.gradle :
implementation project(':lib-annotation')
annotationProcessor project(':lib-processor')
非常感谢任何帮助,谢谢!
P.S。该项目旨在成为一个图书馆。我希望用户只将我的库包含在他们的gradle文件中,而不是“子依赖”。
答案 0 :(得分:2)
仅使用实施会阻止您使用传递依赖。
主项目无法使用或调用您添加到库中的依赖项。
在提醒docs时,应使用实现配置来声明组件内部的依赖关系。
因此,您必须使用api
或compile
代替implementation
或向您的传递库添加条件,例如: -
implementation ('com.google.code.gson:gson:2.8.1'){
transitive = true;
}
答案 1 :(得分:1)
除了事实实现隐藏依赖关系并因此将其保持在应用程序的路径之外(因此,如果您需要公开Gson,避免使用实现),问题是由于编译/实现库模块而不是使用常规aar / jar / apklib包。试试这个:
- 将Android Maven Gradle插件添加到库项目并配置它。
- 使用插件,编译并将库安装到本地maven存储库中。 - 不使用compile / api / implementation将库添加到app,将mavenLocal()包含到build.gradle中,然后将库添加为常规依赖项。所有必要的依赖都应该存在。
这是插件的一个示例,如果您需要它:https://github.com/fcopardo/EnhancedMapView
答案 2 :(得分:0)
点击此链接,我已经导入没有任何问题。 http://blog.madadipouya.com/2015/09/21/how-to-add-gson-library-to-android-studio-project/
答案 3 :(得分:0)
好的,我终于解决了这个问题!
我必须使用Gson
或 implementation
将compile
依赖项添加到处理器 build.gradle中:
implementation 'com.google.code.gson:gson:2.8.1'
使用compile
将依赖项再次添加到注释 build.gradle中:
compile 'com.google.code.gson:gson:2.8.1'
我认为它不起作用,因为Gson
依赖项位于处理器 build.gradle中,使用annotationProcessor 'lib-processor'
(不知何故,"}及物性"没有适用)。因此,我将Gson
依赖项放在注释 build.gradle中,因为我使用implementation 'lib-annotation'
包含它并且它有效。
希望它会有所帮助