我想使用构建工具 21.1+ 编译一个 android 应用程序,因为我需要使用 multidex 支持。我从 SDK 管理器安装了构建工具 21.1.2。之后,我更改了所有 build.gradle 文件以包含 buildToolsVersion:
android {
...
buildToolsVersion "21.1.2"
...
}
由于该应用程序依赖于其他几个项目,因此有几个 build.gradle 文件,具有不同的版本和参数。
此外,是否进行了 multidex 所需的其他更改。在需要 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 插件 1.1.0, 构建工具 21.1.2, Google APIs 21, android studio 1.1.0。这个想法是能够结合使用最新的 Google API 和 ros-android 库。