2016-08-19 55 views
1

我是新來的stackoverflow,所以我很抱歉,如果我的問題沒有完全解釋。Gradle並沒有將Dagger 2生成的類添加到aar

我目前的項目有一個結構

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

核心庫是包含對其他2個圖書館常用功能的庫。

在這種情況下,核心庫,庫1和2使用依賴注入和Dagger 2,並且它們中的每一個創建它自己的依賴關係圖。所以他們每個人都有自己的組件接口,模塊和Dagger 2生成的類。他們也都有@Inject註釋來獲取他們需要的對象實例。

核心庫使用2個類來建立與其他庫的連接。構建依賴關係圖的初始化程序類和發佈程序類將獲得返回所需對象實例的方法。

我想完成的是製作3個文件,每個文件庫一個。庫1和庫2使用核心庫aar。應用程序從庫文件庫中獲取庫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); 
} 
} 

回答

-1

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

該腳本有助於創建一個包含依賴關係的aar,它可以在許多情況下非常方便。

+0

一個潛在的解決方案的鏈接永遠是受歡迎的,但請[在鏈接添加上下文](// meta.stackoverflow.com/a/8259),以便您的同行用戶將有一些想法是什麼,爲什麼它在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。考慮到_僅僅是一個鏈接到外部site_是一個可能的原因,因爲[爲什麼和如何刪除一些答案?](// stackoverflow.com/help/deleted-answers)。 – FrankerZ

相關問題