FAQ
在使用 Booster 的过程中,可能会遇到一些问题,以下列举了一些常见问题及解决办法。
NoSuchMethodError: kotlin.io.ByteStreamKt.readBytes(Ljava/io/InputStream;)[B
TIP
升级 Kotlin 版本至 1.3.10
或更高
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.10'
1
NoSuchFieldError: JAVA_LETTER_OR_DIGIT
TIP
Android Gradle Plugin 依赖的 Guava 版本低于 26.0
而其它库依赖了 Guava 26.0
以上的版本
CharMatcher.JAVA_LETTER_OR_DIGIT
在 Guava 26.0
版本中被移除
升级 Android Gradle Plugin 版本
classpath 'com.android.tools.build:gradle:3.3.0'
1
IllegalAccessError: tried to access method com.google.common.io.Files.fileTreeTraverser()
TIP
Android Gradle Plugin 依赖的 Guava 版本低于 25.0
com.google.common.io.Files.fileTreeTraverser()
在 Guava 25.0
版本中被移除
检查项目中引用的 Guava 版本是否正确,确保构建脚本依赖的是 Guava 的 JRE 版本
NoSuchFieldError: ASCII
TIP
升级 Android Gradle Plugin 版本
classpath 'com.android.tools.build:gradle:3.4.2'
1升级 Gradle Wrapper 版本
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
1升级 Kotlin 版本至
1.3.10
或更高classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.10'
1
如何检查引用的 Guava 版本
TIP
执行 buildEnv 任务查看工程 build 脚本的依赖:
$ ./gradlew buildEnv
1
移除 Booster 依赖的 Guava 版本
如果以上所有方法都想升级 Android Gradle Plugin 版本,考虑将 Guava 从 Booster 的依赖中排除:
TIP
classpath("com.didiglobal.booster:booster-gradle-plugin:${booster_version}") {
exclude group: 'com.google.guava'
}
1
2
3
2
3