0
我是新來的匕首,我正在嘗試使用android的小應用程序。 我想通過http和https對兩臺服務器(dev和prod)使用Retrofit進行REST請求。所以,我在調試味模塊,其中:匕首錯誤:java.lang.String的重複綁定
@dagger.Module(overrides = true, library = true, complete = false)
public class DebugApiModule {
private static final String SRV = "dev.mysrv.com";
private static final String HTTP = "http://";
private static final String HTTPS = "https://";
public static final String API_URL = HTTP + SRV;
public static final String API_URL_SECURE = HTTPS + SRV;
@Provides @Singleton @Api String provideApi() { return API_URL; }
@Provides @Singleton @ApiSecure String provideApiSecure() { return API_URL_SECURE; }
}
這裏我使用標註以不同的兩個字符串,但我得到的錯誤:
Error:(23, 50) error: Duplicate bindings for java.lang.String in override module(s) - cannot override an override:
com.myapp.common.api.DebugApiModule.provideApi()
com.myapp.common.api.DebugApiModule.provideApiSecure()
什麼不對的代碼?
謝謝傑克,我錯過了'@ Qualifier'註釋。 我正在使用您的u2020應用程序作爲參考,還有'@ ClientId'註釋也沒有'@ Qualifier'註釋。那麼爲什麼它在你的應用程序中工作? – 2014-10-17 16:29:54
嘿,好問題!我得看一看。 – 2014-10-17 18:49:03
哦,對不起,這不是你的應用程序,它是你的應用程序的端口,由檸檬實驗室,他們添加了NavigationDrawer,Mortar和Flow。 ([github上](https://github.com/lemonlabs/u2020-mortar/blob/ab9b1b06b37bd9c67dcdd614548fa1899b62f8f3/app/src/main/java/co/lemonlabs/mortar/example/data/api/ClientId.java)) 在你的應用程序中有'@ Qualifier'([github](https://github.com/JakeWharton/u2020/blob/d5dc1aff3eb23ab185bb191f609b6f6187dcfaaa/src/main/java/com/jakewharton/u2020/data/api/ClientId.java) ) 所以這是檸檬問題 – 2014-10-20 08:32:29