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_DIGITGuava 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 版本是否正确,确保构建脚本依赖的是 GuavaJRE 版本

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 版本,考虑将 GuavaBooster 的依赖中排除:

TIP

classpath("com.didiglobal.booster:booster-gradle-plugin:${booster_version}") {
    exclude group: 'com.google.guava'
}
1
2
3