Abc
起因:
更新了androidStudio3.0后,用其打开以前的工程,会报错,有gradle的问题,有编译版本的问题,还有apt的问题:
apt(annotation processing tool) –> annotationProcessor
这一点导致之前项目里的gradle配置都不能直接使用了。需要修改一下:
1. 修改Project 的build.gradle配置
android-apt方式
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
annotationProcessor方式(删除apt的引用):
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
2. 修改module的build.gradle配置
apt方式:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
compile 'org.greenrobot:eventbus:3.0.0'
apt'org.greenrobot:eventbus-annotation-processor:3.0.1'
}
annotationProcessor方式 (只保留dependencies 里面的引用并且把apt 换成annotationProcessor) :
dependencies {
compile 'org.greenrobot:eventbus:3.0.0'
annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.0.1'
}
3. dependencies里的配置:
apt方式:
apt 'org.greenrobot:eventbus-annotation-processor:3.0.1'
annotationProcessor方式 (apt 替换为:annotationProcessor):
annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.0.1'
4. EventBus 3.0 注解索引参数配置
apt方式:
}apt {
arguments {
eventBusIndex "com.cyun.demo.MyEventBusIndex" //eventbus注解特性需要的索引
}
annotationProcessor方式(
1 defaultConfig节点下:增加jackOptions和javaCompileOptions
):
defaultConfig {
applicationId "com.cyun.demo"
minSdkVersion 15
targetSdkVersion 22
versionCode 420
versionName "4.2.0.0"
jackOptions {
enabled true
}
javaCompileOptions {
annotationProcessorOptions {
arguments = [ eventBusIndex: 'com.cyun.demo.MyEventBusIndex'] //eventbus注解特性需要的索引
}
}
}
另外,android studio3.0 编译版本选择Java 8的话必须使用Jack编译,android-apt只支持javac编译而annotationProcessor既支持javac同时也支持jack编译。
参考文章: