React Native在Android上找不到Build Tools。

92

以下问题是由什么原因引起的?我的Android SDK版本不受支持吗?

Starting JS server...                                                                     
Building and installing the app on the device (cd android && gradlew.bat installDebug)...

FAILURE: Build failed with an exception.                                                  

* What went wrong:                                                                        
A problem occurred configuring project ':app'.                                            
> failed to find Build Tools revision 23.0.1       

从SDK管理器的v25版本开始,您现在必须从Android Studio安装正确的Build Tool,因为android命令已被删除:https://dev59.com/4lwX5IYBdhLWcg3w-Thv#44295114 - Sebastien Lorber
11个回答

136

可能需要更新您的构建工具。

当我尝试从图形界面更新时,我遇到了问题,它没有显示确切的次要版本,因此我无法更新到该版本。

通过在终端中查看可用版本来解决了这个问题:

android list sdk -a

[...]
Packages available for installation or update: 156
1- Android SDK Tools, revision 24.4
2- Android SDK Platform-tools, revision 23.0.1
3- Android SDK Platform-tools, revision 23.1 rc1
4- Android SDK Build-tools, revision 23.0.1

使用以下命令安装正确的版本:

android update sdk -a -u -t 4

3
这个“android”程序是什么?我该从哪里获取它? - jameshfisher
2
@jameshfisher 这是Android SDK的一部分,它位于“tools”目录下,例如:~/android-sdk/tools/android。 - edur
我尝试了多次使用Android Studio进行更新,但都没有成功。不过这个命令却可以。谢谢。 - jordancooperman
实际上,它在React项目中的android-sdk-linux中。 - Ghita Tomoiaga
请注意,在新版本的SDK管理器中,“android”命令不再起作用,您必须运行Android Studio才能访问此设置,请参见https://dev59.com/4lwX5IYBdhLWcg3w-Thv#44295114。 - Sebastien Lorber

74

注意:可能会出现此错误,因为您安装的构建工具版本过新

我遇到了与提问者相同的错误(react-native无法找到Build Tools revision 23.0.1),当我检查我的Android SDK管理器时,我看到了这个:

截图显示23.0.2“已安装”但23.0.1“未安装”

我天真地认为安装最新版本的构建工具(目前是23.0.2)可以解决问题,但显然不行。 此外安装23.0.1也解决了问题。


同样的问题在这里。有没有办法使用更新的构建工具?或许是一些配置。 - sodik
这个建议对我也起作用了。23.0.2版本太新了,真是讽刺。谢谢。 - Fernando
1
@boatcoder 这个答案(安装旧版本的构建工具)并不比 sodik 的答案(修改 build.gradle 以使 React Native 使用更新的构建工具)更不正确。Android 构建工具似乎遵循 SemVer,因此修改 build.gradle 以使用较新的补丁或次要版本通常是安全的,可能提供一些平台级别的错误修复或性能改进,并避免您下载任何东西。但是如果在主要版本发布时进行此操作,它将破坏您的应用程序,并且即使在补丁/次要版本中也会引入一些风险,因为您正在使用 Facebook 没有打算使用的构建工具与 RN。 - Mark Amery

29

我也遇到了与 Mark 相同的新版本 SDK 构建工具问题,但我通过修改 android/app/build.gradle 文件并设置正确的版本来解决了它。

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

更新:正如Mark建议的那样,明智的做法是只以这种方式更新次要(或补丁)版本。另一个不更新此版本的原因是当您有很多带有本机部分的第三方库时 - 您可能最终需要更新它们所有。因此,您必须权衡新版本可能带来的好处与更多工作之间的可能性。


1
请不要忘记将第85行的 targetSdkVersion 22 更改为 targetSdkVersion 23 - Xianlin
我发现生成的build.gradle文件中有buildToolsVersion "23.0.1",但我只安装了版本23(23.0.0)- 不确定“react-native init”从哪里找到android / tools SDK版本号。因此,原因实际上是react-native init命令未使用可用的工具版本号? - ferdil
我相信 23.0.1 是修复的(可能会随着 RN 版本更改),但据我所知没有检测到。 - sodik
谢谢,这解决了我的问题,从23改为25,23.0.1改为25.0.0。 - niren

4

需要修改4个文件

在所有文件中查找“buildToolsVersion”并包含“23.0.1”的内容。

Examples/Movies/android/app/build.gradle:    buildToolsVersion "23.0.2"
Examples/UIExplorer/android/app/build.gradle:    buildToolsVersion "23.0.2"
ReactAndroid/build.gradle:    buildToolsVersion "23.0.2"
local-cli/generator-android/templates/src/app/build.gradle:    buildToolsVersion "23.0.2"

3
这意味着你系统上安装的 Android Build 工具与应用程序配置文件中指向的版本不同(配置文件指向23.0.1),但你的系统上可能有 23、24 或 25.0.* 版本。
解决此问题的方法:
1. 编辑项目文件夹下的 android/app/build.gradle 文件。 2. 查找 buildToolsVersion 条目 "23.0.1",并将其替换为系统上最新的版本。你可以在这里找到它:C:\Program Files (x86)\Android\android-sdk\build-tools。 3. 或者你可以尝试在系统中安装 build.gradle 文件中指定的版本(使用 SDK 管理器)。

3

我不得不修改我的Android项目的build.gradle文件为:

compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.demoproject"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }

1
/Users/username/Library/Android/sdk/build-tools目录中找到版本号,然后修改与Gradle配置对应的buildToolsVersion的版本号。

1
从Android SDK管理器v25开始,您必须直接从Android Studio安装正确的构建工具,因为android命令不再起作用。

install from android studio


从Andriod Studio中打开此屏幕的方法如下: 文件 -> 设置 -> Android SDK -> SDK工具 -> 右下角"显示包详情"我添加了这个注释,因为我花了一些时间才找到它。 - Jason Allshorn

1
如果您使用的是 Build Tools 版本 24.0.1,则需要将您的 build.gradle 更新为与 buildToolsVersion "24.0.0" 相匹配的版本。
我的 Android/Sdk/build-tools/24.0.1/source.properties 文件中的 Pkg.Revision 已设置为 24.0.0。

0
我在尝试按照React Native文档在命令行构建时遇到了问题。后来我通过在Android Studio中打开项目解决了这个问题。不匹配的依赖项将出现在应用程序底部的构建失败Snackbar中。对于每个失败,点击链接以解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接