2013-04-22 112 views
1

我從匕首以下錯誤:意外的關鍵

[ERROR] error on execute: java.lang.IllegalArgumentException: Unexpected key: ca.nanometrics.apollo.instrument.configuration.ResourceOwnerController<> 

我相信這是因爲我有一個類,沒有注射的依賴關係 - 它有一個空的公共構造(與@注入),用也沒有什麼可以注入會員。我這樣做不必爲它聲明@Provides。需要注意的是與@注入類是在上面的錯誤信息中列出類的子類:

public class ResourceOwnerControllerHelios extends ResourceOwnerController<ResourceOwnerFactoryHelios> 
{ 

    @Inject 
    public ResourceOwnerControllerHelios() 
    { 
    // do nothing 
    } 

是這把匕首的錯誤,或者是有什麼我失蹤?

如果我刪除了@Inject,但仍然沒有將@Provides添加到模塊中,它當然根本不起作用,因爲匕首需要@Inject或@Provides所有的依賴關係。

回答

2

Oi - 這看起來像它的'碰撞到泛型的處理不當。 :/可能在github上提出問題。你在做什麼應該工作 - 也就是將@Inject添加到無參數公共構造函數中。我相信Dagger試圖爬上繼承層次結構,而不是處理父類中的泛型。我們應該處理這個案子。

+0

我添加到github上的問題https://github.com/square/dagger/issues/211 – Ben 2013-04-23 00:19:03