博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android studio 3.2(AS) 使用 AndroidAnnotation (AA)注解框架
阅读量:6885 次
发布时间:2019-06-27

本文共 3341 字,大约阅读时间需要 11 分钟。

hot3.png

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(编译)。

注:

  1. AA 编译之后会在build编译目录中生成以当前Activity加下划线,如:XXActivity 编译后 XXActivity_

转载于:https://my.oschina.net/who7708/blog/2243748

你可能感兴趣的文章