【问题标题】:Unable to change build tools version to compile android app无法更改构建工具版本来编译 Android 应用程序
【发布时间】:2015-02-25 15:48:38
【问题描述】:

我想使用构建工具 21.1+ 编译一个 android 应用程序,因为我需要使用 multidex 支持。我从 SDK 管理器安装了构建工具 21.1.2。之后,我更改了所有 build.gradle 文件以包含 buildToolsVersion:

    android {
      ...
      buildToolsVersion "21.1.2"
      ...
    }

由于该应用依赖于其他几个项目,因此有多个 build.gradle 文件,具有不同的版本和参数。

此外,还进行了多索引所需的其他更改。在需要 multidex 的应用程序中,我像这样修改了 build.gradle:

android {
  ...
  compileSdkVersion 21
  buildToolsVersion "21.1.2"

  defaultConfig {
    minSdkVersion 21
    targetSdkVersion 21

    // Enabling multidex support.
    multiDexEnabled true
  }
  ...
}

当然还有将清单修改为。

问题在于,尽管进行了所有 build.gradle 修改,但该项目似乎正在使用 19.1.0 构建工具进行编译,因为当我删除它们时,我收到此错误:

> failed to find Build Tools revision 19.1.0

当我安装构建工具 19 时,项目在编译过程中更进一步,但它会得到各种不同的奇怪错误,具体取决于编译参数。如果我设置:

    minSdkVersion 15
    targetSdkVersion 21

项目在dex过程中编译失败,出现奇怪的错误。 但是如果我将两者都设置为 v 21,则项目无法编译,因为它说它需要构建工具 21.0+,我在 build.gradle 中明确要求。

由于项目最初是这样开发的,所以我使用的是 gradle 包装器 (gradlew),而不是 Android Studio 的内置 gradle。

请注意,以下内容与错误的技术部分无关,但可能有助于理解它的上下文: 我正在尝试编译 ros-android (android_core) 库,但将所有内容更新到最新版本:gradle 2.3、android plugin 1.1.0、build tools 21.1.2、Google APIs 21、android studio 1.1.0。我们的想法是能够结合 ros-android 库使用最新的 Google API。

【问题讨论】:

  • 我想你一定是在某个地方错过了一个构建文件,它仍然设置为 19.1.0。
  • 因为我检查了几次,这不太可能。我会再次检查确定,但我猜这不是问题。

标签: android android-studio android-gradle-plugin android-build android-multidex


【解决方案1】:

这是一个棘手的问题。问题是 build.gradle 没有像我们预期的那样设置构建工具。相反,有另一个插件(rosjava android)正在调用 gradle 构建。问题是这个插件有“硬编码”的构建工具版本,所以如果不重新编译所有东西就不可能改变它们。

很高兴,库的作者在过去几天更新了所有内容,包括 buildtools 版本和 maven repo。所以现在问题已经解决了。

【讨论】:

  • 您能否确认与此更改相关的修订?我在较新的 Android Studio 构建中看到这一点“SDK 构建工具修订版 (21.1.2) 对于项目':make_a_map'来说太低了。最低要求是 25.0.0”
猜你喜欢
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2016-06-27
  • 2018-08-14
  • 1970-01-01
  • 2021-11-01
  • 2023-04-02
相关资源
最近更新 更多