android studio 3.2(AS) 使用 AndroidAnnotation (AA)注解框架
AS及环境 信息
Android Studio 3.2Build #AI-181.5540.7.32.5014246, built on September 18, 2018JRE: 1.8.0_152-release-1136-b06 x86_64JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
配置AA
在项目的module中,修改build.gradle, 配置如下:
android.defaultConfig 中增加:javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true //这里的包名和applicationId一致 arguments = [ 'resourcePackageName' : android.defaultConfig.applicationId , "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString() ] }}依赖jar包增加如下:亲测,AS 3.2版本中只有这两个版本的AA可以使用,其他的报错。def AAVersion = "4.4.0"//def AAVersion = "4.3.1"dependencies { // 增加android annotation 注解框架,增强开发效率 annotationProcessor group: 'org.androidannotations', name: 'androidannotations', version: "$AAVersion" implementation group: 'org.androidannotations', name: 'androidannotations-api', version: "$AAVersion"}
module中build.gradle全量配置如下:
apply plugin: 'com.android.application'def AAVersion = "4.4.0"//def AAVersion = "4.3.1"android { compileSdkVersion 28 defaultConfig { applicationId "your.package" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true //这里的包名和applicationId一致 arguments = [ 'resourcePackageName' : android.defaultConfig.applicationId // AA打印日志级别: trace, debug, info, warn, error, 默认warn , "logLevel" : "TRACE" , "logAppenderConsole" : "true" // 生成Activity类的下标,默认为:_ , classSuffix : "_" // 解决: Execution failed for task ':app:compileDebugJavaWithJavac'. // 参考: https://github.com/androidannotations/androidannotations/issues/2034 , "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString() ] } } multiDexEnabled true // Enabling multidex support. } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility = '1.8' targetCompatibility = '1.8' }}dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support.constraint:constraint-layout:1.1.3' // as 3.0 之后的用法 // 增加android annotation 注解框架,增强开发效率 annotationProcessor group: 'org.androidannotations', name: 'androidannotations', version: "$AAVersion" implementation group: 'org.androidannotations', name: 'androidannotations-api', version: "$AAVersion" testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'}
配置完成之后,可以写个Activity验证是否有效,要build(编译)。
注:
- AA 编译之后会在
build
编译目录中生成以当前Activity加下划线,如:XXActivity
编译后XXActivity_
,