我是stackoverflow的新手,所以如果我的问题没有得到完美的解释,我很抱歉。
我当前的项目有下一个结构
core Library
| |
Library 1 Library 2
| |
applications applications
核心库是一个包含其他2个库的常用功能的库。
在这种情况下,核心库,库1和2使用Dagger 2的依赖注入,并且每个都创建它自己的依赖图。因此,每个人都有自己的组件接口,模块和Dagger 2生成的类。所有这些都有@Inject注释用于获取所需的对象实例。
核心库使用2个类与其他库建立连接。构建依赖关系图的初始化类和发布者类,它们获取返回所需对象实例的方法。
我想要完成的是制作3个aar文件,每个库一个。图书馆1和图书馆2使用核心图书馆。应用程序从工件库中获取库1和库2。
我目前的问题是,在3个aar文件中的任何一个都是Dagger 2生成的类。我不知道为什么。在构建项目时生成了所有类,但编译的类不在aar文件中。
我正在使用:
apt 'com.google.dagger:dagger-compiler:2.5'
compile 'com.google.dagger:dagger:2.5'
provided 'javax.annotation:jsr250-api:1.0'
的gradle-2.14.1
这是我的发布商的一个例子:
public class Publisher {
@Inject
ReceiversManager receiversManager;
@Inject
NetworkManager networkManager;
@Inject
HttpRequestManager httpRequestManager;
public ReceiversManager getReceiversManager(){
return receiversManager;
}
public NetworkManager getNetworkManager() {
return networkManager;
}
public HttpRequestManager getHttpRequestManager() {
return httpRequestManager;
}
public Publisher(){
Initializer.getComponent().inject(this);
}
}
答案 0 :(得分:-1)
我用这个脚本https://github.com/adwiv/android-fat-aar
解决了这个问题该脚本有助于创建包含依赖项的aar,这在许多情况下非常方便。