[分享] AndroidStudio+ABS+AndroidAnnotations

看板AndroidDev作者 (瑋哥)時間12年前 (2013/06/05 00:31), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
昨天在版上問了一篇關於 Android Studio + ActionBarSherlock 的問題 #1HguFZB5 (AndroidDev) 後來在 Google 的廣大搜尋結果中翻山越嶺,終於摸索出了一點心得 想說把它記錄下來免得忘記、也順便跟大家分享 另外也附上 AndroidAnnotations 的整合問題(這也困擾我超級久 ...) ---------- Android Studio http://developer.android.com/sdk/installing/studio.html ActionBarSherlock http://actionbarsherlock.com/ AndroidAnnotations http://androidannotations.org/ 範例專案網址:https://github.com/lazywei/TestAbsAa 假設今天使用 AS 新建的 Project 是 TestAbsAa 那整個檔案夾預設結構應該是 TestAbsAaProject/ .idea/ gradle/ TestAbsAa/ build.gradle gradlew ... blah blah blah 首先先把 ABS 的 zip 抓下來,unzip 後裡面會有一個 actionbarsherlock 的資料夾 把它搬到 TestAbsAaProject/libraries/ 底下(請自行新建資料夾) 接著在 TestAbsAaProject/settings.gradle 中加入 include ':libraries:actionbarsherlock' 然後在 TestAbsAaProject/TestAbsAaProject/build.gradle 的 dependencies {} 中 加上 compile project(':libraries:actionbarsherlock') 參考:http://goo.gl/oTXeg 接著要再 actionbarsherlock/ 底下新增 build.gradle,檔案內容有點長 請直接參考 github 檔案連結:http://goo.gl/mQDMl 基本上這樣就「應該」可以順利 build 了,但是這時候我遇上了一個很莫名其妙的問題 Error Dx UNEXPECTED TOP-LEVEL EXCEPTION ..... 大致上就是 abs 有一個 android-support-v4.jar,TestAbsAa 這個 project 也有一個 然後名字一樣但內容不一樣,就出 exception 了 ... 解法有點蠢,但很簡單,就直接把 TestAbsAaProject/TestAbsAa/build.gradle 中的 android-support-v4.jar 的 dependency 去掉就好了 ... 至此應該可以順利 ./gradlew clean & build 了 接下來我們裝 AA,裝 AA 其實比較簡單 問題是出在 AS 就算 enable 了 annotation 好像也不會自動幫你 process ... 甚至連該產生的資料夾都沒有QQ ... 後來我的解決方法是用 gradle 0.4.1 然後加上一些自定 task 另外我是把 aa 的 jar 放在 TestAbsAaProject/TestAbsAa/compile-libs/ 底下 這是我自己建立的資料夾,而把 aa-api 的 jar 放在 libs 底下 基本上只要在 build.gradle 裡面寫好 dependency,然後定好 process 的 task (參考 http://goo.gl/t0nm5 基本上是新增 configurations {} 還有 android.applicationVariants.each {} 這兩段) 就差不多了 最後記得在 Project Structure -> TestAbsAa 中 1. 在 dependency 加上在 TestAbsAaProject/TestAbsAa/libs/ 中的 aa-api 的 jar 2. 在 source 的地方把 build/source/apt_generated/debug 標記成 Source 基本上這樣就完成了! ==================== 造成這次麻煩的其中一個原因是,Android Studio 的 Project Structure 設定 介面並不會幫你調整 build.gradle 裡面的設定 所以在這裡面加的 dependency 並不會自動被處理,目前 dependency 都要自己 在 build.gradle 裡面寫,不過 AS 有說很快會推出 dependency 的 UI ... 當然也有試過要用 maven 來解 dependency 的問題,但是我搞不定 ... 最後還是回到使用 gradle 了 希望有幫到和我一樣剛摸索 AS 怎麼用的人囉! 心得:千萬不要放棄 Google 第一頁之外的搜尋結果阿XDDDD 忘記補上我的參考連結了 ABS 部分 http://rsproglog.blogspot.tw/2013/05/gradle-new-android-build-system_21.html http://stackoverflow.com/a/8139911 AA 部分 https://code.google.com/p/android/issues/detail?id=55764 http://stackoverflow.com/a/16802216/1371471 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.248.24 ※ 編輯: kusoayan 來自: 140.112.248.24 (06/05 00:34)

06/05 02:17, , 1F
推用心整理
06/05 02:17, 1F

06/06 14:42, , 2F
未看先推
06/06 14:42, 2F
文章代碼(AID): #1HhXPJO8 (AndroidDev)