昨天看了一段android配置aspectj实现AOP的直播视频,就试着自己配置了一下,可能是因为我自己的AndroidStudio环境的问题,碰到了不少的坑(其实还是因为对gradle理解的不多),但总归是配置好了,就分享一下。
试了两种方式,不过项目下的build.gradle,没什么变化,直接看一下代码吧:
build.gradle(项目下)
buildscript {
ext {
//android appcompat支持库版本
androidSupportVersion = '26.1.0'
//编译的 SDK 版本,如API20
compileSdkVersion = 26
//构建工具的版本,其中包括了打包工具aapt、dx等,如API20对应的build-tool的版本就是20.0.0
buildToolsVersion = "26.0.2"
//兼容的最低 SDK 版本
minSdkVersion = 15
//向前兼容,保存新旧两种逻辑,并通过 if-else 方法来判断执行哪种逻辑
targetSdkVersion = 26
//kotlin版本号
kotlin_version = '1.2.10'
kotlinVersion = "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
appcompatV7 = "com.android.support:appcompat-v7:$androidSupportVersion"
appcompatDesign = "com.android.support:design:$androidSupportVersion"
constraintLayout = 'com.android.support.constraint:constraint-layout:1.0.2'
}
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'org.aspectj:aspectjtools:1.8.13'
classpath 'org.aspectj:aspectjweaver:1.8.13'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
看着一大堆,主要就是下面这几行配置,其他的是我自己项目中用到的,根据自己需要配置就行。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.aspectj:aspectjtools:1.8.13'
classpath 'org.aspectj:aspectjweaver:1.8.13'
}
}
repositories {
mavenCentral()
}
其实这几行配置在app的build.gradle里也是可以的,但是因为项目下的build.gradle里已经有buildscript {}、allprojects {repositories{} },就配置在这里了。
然后有两种配置方式:
第一种
只有一个主Module app的情况下,配置app的build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "填入自己的applicationId"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
//Lambda配置
// jackOptions.enabled = true
// android.compileOptions.sourceCompatibility 1.8
buildConfigField "boolean", "LOG", "true"// 显示Log
testInstrumentationRunner "android.support.test.runner.AndroidJUnit