马上要开始一个新项目,项目时间比较紧迫,所以想要加快开发速度,第一个想到的就是注解的开发方式。一查找果然Android上也有一些注解,衡量了一下决定使用androidannotations框架。

第一件事就是在自己电脑上搭建一个demo,用来测试可行性,结果真是命途多舛,用了一周的时间才整明白他是怎么回事。


在Android studio和eclipse上的搭建方式略有不同,在官方网站上有说明。

Eclipse配置网址:https://github.com/excilys/androidannotations/wiki/Eclipse-Project-Configuration

在这里就不细说,毕竟android官方都已经放弃Eclipse平台了,如果不是出于历史原因和惰性,那必然要选择android studio作为Android的主要IDE了。

由于在最初的时候使用android studio配置失败了。所以中间尝试使用eclipse进行配置,毕竟对eclipse更加熟悉。

在使用eclipse配置的时候,出现了一个问题。在说明中需要配置annotation processing,但是如果使用的是从android官网下载版本,是没有这个选项的。所以需要自行安装相关插件。

这里给出一个解决方案http://blog.csdn.net/lpforever/article/details/40779341

不过这个方案并没有经过我的证实。


配置一个小小的库都如此头疼,在放了两天之后还是决定攻克它。

重新阅读官方网站,无意中打开一个页面,提到了与eclipse类似的配置方法,也是需要annotation processing

遗憾的是Android studio也没有这个东西。所以这条路也走不通了。


最后找到了这个网址:http://www.07net01.com/2015/07/878301.html

里面的问题一正是我遇到的问题之一,

Error:(2, 0) Plugin with id 'android-apt' not found.

解决方法:

dependencies {    classpath 'com.android.tools.build:gradle:1.2.3'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4
} 在project的build.gradle添加classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4',我在最初的版本中使用的是1.3,而在官网查看应该已经出到1.7了。由于在最开始是,即使添加了这段话依然会爆这个错误,所以怀疑是否与版本有关。

这里还涉及到studio的一个事情,配置了插件studio会自动下载。

这一步完成之后就一切顺利起来了,根据http://www.2cto.com/kf/201507/417313.html网址的配置方式进行配置。

由于最初配置时,没有看到配置后完整的build.gradle,所以误以为

apt {    arguments {        androidManifestFile variant.outputs[0].processResources.manifestFile        resourcePackageName "com.fc.mytestlib"    }}
这段代码是写在android{}这个里面的。


事实证明,网上的配置方式是可行的,但是在一些细节上并没有说清楚。比方说至今也不清楚这个apt插件到底是干什么的。

如果配置正确就可以开始使用annotations了。

这里贴出一个我配置成功后的module的build.gradle文件。


apply plugin: 'com.android.application'apply plugin: 'android-apt'def AAVersion='3.3.2'android {    compileSdkVersion 21    buildToolsVersion "22.0.1"    defaultConfig {        applicationId "com.fc.mytestlib"        minSdkVersion 14        targetSdkVersion 22        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')    compile 'com.android.support:appcompat-v7:22.2.0'    apt "org.androidannotations:androidannotations:$AAVersion"}apt {    arguments {        androidManifestFile variant.outputs[0].processResources.manifestFile        resourcePackageName "com.fc.mytestlib"    }}


配置成功之后就是开始编程了。

需要注意的是:使用annotations的Activity在清单文件中是需要加一个下划线作为名称的,这个文件实际上是编译后生成的,所以在修改了名称之后是一定要先编译再运行的,否做会报错。

基于同样的原因,在使用这个activity的时候也是需要加下划线的,否则会报错。

例如:


    android:name=".activity.AnnotationTestActivity_" >

intent = new Intent(mContext, AnnotationTestActivity_.class);mContext.startActivity(intent);
如果某些Activity不打算使用annotations,那么直接正常使用就可以了。








更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. 01 Android(安卓)布局使用的几种方式
  3. 点9图 Android设计中如何切图.9.png(点9图)
  4. 【Sublinux】Station P1在Android上使用Plex
  5. Android(安卓)懒人系列(帮你选型)之 安卓底部导航栏
  6. Android中Context的详细使用
  7. 最快Android模拟器Genymotion的安装与使用完整教程(多图,慎点)
  8. DRM架构介绍
  9. 【移动开发】Android中三种超实用的滑屏方式汇总(ViewPager、View

随机推荐

  1. 第八章 Android(安卓)开发常见的UI布局
  2. android 小知识
  3. Windows下Android平台搭建_2
  4. 控件的android:layout_alignParentTop属
  5. android 资源
  6. android XMl 解析神奇xstream 六: 把集合l
  7. Android Drawable Resources系列9:
  8. android的SDK----google中的翻译
  9. Android(安卓)- Android(安卓)Architectu
  10. [Android]解决EditText设置成密码模式改