如下環境爲Android Studio 1.3.2,Gradle 2.7(as自帶2.4,另下載的2.7)html
編譯時提示Multiple dex files define: Lcom/sina/weibo/sdk/BuildConfig異常android
新浪微博提供的SDK裏所帶的weibosdkcore.jar裏包含了BuildConfig類,而api工程也會生成同名(包名也相同)類,因此有此編譯異常。解決方法是用工具(如7zip)直接刪除weibosdkcore.jar裏的BuildConfig.class文件。還有其餘解決方法,這個連接不錯。api
沒法clean projectandroid-studio
有時clean後仍然有文件殘留(例如classes.jar),此時須要手工刪除項目路徑下的build目錄(刪除時可能會提示classes.jar被佔用,多半是as本身在使用,可關閉as再重試)。比較噁心的是,clean時並不會提示你有文件沒法刪除。工具
兩個project共享一個module測試
假設本身寫了一個android library(名稱library1),而後想在Project1和Project2裏都使用它,但不把library1複製兩份。竅門是在project2的setting.gradle文件裏像下面這樣引用project1裏的資源:gradle
include ':../project1/library1'
參考連接ui
Configuration with name 'default' not found.spa
檢查settings.gradle文件裏,include的module是否存在,一般是include了不存在的module形成的。參考連接.net
Proguard提示Duplicate Entry錯誤
多個module依賴多個相同的jar文件時會有這個問題,我當時遇到的是xutils,解決辦法是在jcenter上找到了對應的repository,改成不直接使用jar而是使用repository解決。Proguard Troubleshooting
用proguardFile仍是proguardFiles?
在build.gradle裏指定項目proguard配置文件時,用proguardFiles能夠同時指定多個,用proguardFile可指定一個(可多行),經測試效果是同樣的。注意:在module settings對話框裏可能會顯示不出來正確的文件名。還有一個變化:比較新的as版本缺省文件名是proguard-rules.pro,之前是proguard-rules.txt。
被依賴module裏BuildConfig.DEBUG的值總爲false
例如module A依賴module B和module C,在Eclipse裏運行時B和C裏BuildConfig.DEBUG的值會是true(導出簽名apk後會自動變成false);然而在Android Studio裏B和C裏的BuildConfig.DEBUG值老是false,A裏的正常。這樣就致使if(BuildConfig.DEBUG){Log.d(...)}日誌沒法正常顯示。參考連接 參考連接2