1.引入对android-apt的依赖。在全局build.gradle中文件中添加以下代码。(Project目录下的build.gradle)
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+'
}
}
2.设置android-apt参数 。注意把包名换成你的应用的。另外outputs[0]是在新的android-studio的版本中才需要加的。(Module目录下的build.gradle)
apply plugin: 'android-apt' //添加android-apt插件
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
//androidManifestFile variant.processResources.manifestFile(老版本写法)
resourcePackageName "你的包名"
}
}
3.使用apt引入对androidannotation的依赖。(Module目录下的build.gradle)
dependencies {
apt 'org.androidannotations:androidannotations:3.2'
compile 'org.androidannotations:androidannotations-api:3.2'
}
4.最后的build文件应该是这样的。
// Project目录下的build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+'
}
}
//Module目录下的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
android {
compileSdkVersion 21
buildToolsVersion 21.1.2
defaultConfig {
applicationId com.tanglikang.annotationtest
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName 1.0
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName com.tanglikang.annotationtest
}
}
dependencies {
apt org.androidannotations:androidannotations:3.0+ // add these
compile org.androidannotations:androidannotations-api:3.0+ // two lines
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
5.重新build工程,系统会自动下载依赖的第三方库。然后就可以使用AndroidAnnotation了。
注:如果出现下列错误,请将dependencies中的“compile fileTree(dir: 'libs', include: ['*.jar'])”删除。
Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lorg/androidannotations/annotations/AfterExtras; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)