簡體   English   中英

Gradle沒有將Dagger 2生成的類添加到AAR

[英]Gradle is not adding Dagger 2 generated classes to aar

我是stackoverflow的新手,所以很抱歉,如果我的問題沒有得到很好的解釋。

我當前的項目具有下一個結構

                              core Library
                              |          |
                      Library 1         Library 2
                       |                 |
                    applications        applications

核心庫是一個包含其他2個庫的通用功能的庫。

在這種情況下,核心庫1和2使用了Dagger 2的依賴注入,它們每個都創建了自己的依賴圖。 因此,它們每個都有自己的組件接口,模塊和Dagger 2生成的類。 它們全部還具有@Inject批注,以獲取其所需的對象實例。

核心庫使用2個類與其他庫建立連接。 構造依賴關系圖的初始化器類和包含將返回所需對象實例的get方法的發布者類。

我要完成的工作是制作3個AAR文件,每個庫一個。 並且庫1和庫2使用了核心庫aar。 應用程序從工件存儲庫中獲取庫1和2。

我當前的問題是Dar 2生成的類在3個aar文件中的任何一個中。 我不知道為什么。 當我構建項目時,所有類都已生成,但是編譯后的類不在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);
}
}

我用這個腳本解決了問題https://github.com/adwiv/android-fat-aar

該腳本有助於創建包含依賴項的aar,這在許多情況下會非常方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM