由于导入别人的项目,更改了gradle 的版本号,导致项目一直报错,最终查阅资料发现问题出在ButterKnife 上面,有的人是出现NullPointerException ,我出现的错误如下:
gradle 版本号
classpath 'com.android.tools.build:gradle:3.1.0'
解决方式如下:
- 在Project的 build.gradle 中添加如下代码:
buildscript {
repositories {
jcenter()
google()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
}
}
allprojects {
repositories {
jcenter()
google()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
}
}
}
- Module的 build.gradle中添加如下代码:
apply plugin: 'com.android.library'
apply plugin:'com.jakewharton.butterknife'
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
//这是要添加的
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
- app的 build.gradle中添加如下代码:
在dependencies 中添加:
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
注意:Module 和app 中 添加Modle ,尤其是有继承关系的,complie 和 implementation 不能混用