【问题标题】:Weird error while compile Android project with build-tool version 27.0.3使用构建工具版本 27.0.3 编译 Android 项目时出现奇怪的错误
【发布时间】:2018-05-15 03:03:06
【问题描述】:

我没有任何问题

Android Studio 3.0, 摇篮 3.1.0, 构建工具 25.0.3 和 Kotlin 1.2.10

前几天我在 Android Studio 中多次收到更新弹窗,所以我决定将其升级到最新版本 3.1.2 之后,在 gradle-sync 和编译期间请求(它抛出错误),我将工具升级到:

构建工具 27.0.3, compileSdkVersion 27 targetSdkVersion 27 毕业 3.1.0

现在我总是遇到几天后无法修复的错误:

错误:失败:构建失败并出现异常。

  • 出了什么问题:任务 ':sdk:compileReleaseJavaWithJavac' 执行失败。

    java.lang.NoClassDefFoundError: org/apache/commons/io/filefilter/TrueFileFilter

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 通过https://help.gradle.org获得更多帮助

1 秒内构建失败

我现在什至无法回滚到以前的版本。如果我将构建工具改回25.0.3,我会收到此错误:

忽略指定的 Android SDK 构建工具版本 (25.0.3),因为它低于 Android Gradle 插件 3.1.0 的最低支持版本 (27.0.3)。将使用 Android SDK 构建工具 27.0.3。要禁止显示此警告,请从您的 build.gradle 文件中删除“buildToolsVersion '25.0.3'”,因为每个版本的 Android Gradle 插件现在都有一个默认版本的构建工具。更新 Build Tools 版本并同步项目 Open File

我花了很多时间但自己无法解决,所以请帮忙看看并告诉我我犯的任何错误。

非常感谢。

【问题讨论】:

  • 您是否尝试过从您的 buid.gradle 中删除 buildToolsVersion '25.0.3'
  • 是的,一旦我删除了该行,它就会默认使用27.0.3,并删除第一个问题:java.lang.NoClassDefFoundError: org/apache/commons/io/filefilter/TrueFileFilter
  • 如果你使用TrueFileFilter,你是否在你的build.gradle中包含compile 'commons-io:commons-io:2.4'
  • 不,我没有。 @Sagar
  • 我个人没有使用过 TrueFileFilter,但我在某处读到它不是官方 Android SDK 的一部分,因此您必须在应用级别 build.gradle 中包含 compile 'commons-io:commons-io:2.4'。你可以试试看。但这只是一个尝试和错误,因为我没有任何官方文件明确说明。

标签: android android-gradle-plugin


【解决方案1】:

我不确定这可能对其他人有帮助,但我在我的案例中找到了原因。 我正在使用的库之一已经包含commons-io。我实际上不记得是哪一个,但过去几个月我曾经遇到过另一个编译问题,我添加了以下配置以绕过:

configurations {
    all*.exclude module: 'commons-io'
}

现在这个配置导致了我上面问的问题,我尝试删除它,现在一切都很好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多