AndroidStudio的一些坑

如下環境爲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

相關文章
相關標籤/搜索