作者kusoayan (玮哥)
看板AndroidDev
标题[分享] AndroidStudio+ABS+AndroidAnnotations
时间Wed Jun 5 00:31:12 2013
昨天在版上问了一篇关於 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)
1F:推 xezct1213:推用心整理 06/05 02:17
2F:推 PTTco:未看先推 06/06 14:42