javascript - Android上的React Native无法找到构建工具

是什么导致以下问题? 我的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       
11个解决方案
136 votes

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

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

它通过查看终端的可用版本来解决:

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
edur answered 2019-08-24T03:19:56Z
73 votes

只是注意 - 它可能会出现此错误,因为您安装的唯一版本的构建工具太新了。

我得到了OP得到的错误(抱怨反应原生无法找到Build Tools修订版23.0.1)。 当我检查我的Android SDK Manager时,我看到了这个:

screenshot showing 23.0.2 "Installed" but 23.0.1 "Not installed"

我天真地认为安装最新版本的Build-tools(编写本文时为23.0.2)可行,但显然不行。 另外安装23.0.1解决了这个问题。

Mark Amery answered 2019-08-24T03:20:35Z
28 votes

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

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

更新:正如Mark建议的那样,明智的做法是以这种方式更新次要(或补丁)版本。 不更新此版本的另一个原因是当您有大量具有本机部分的第三方库时 - 您最终可能会更新所有这些库。 所以你必须减轻新版本的可能好处和更多的工作。

sodik answered 2019-08-24T03:21:08Z
4 votes

需要修改4个文件

grep buildToolsVersion * -r | grep 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"
gfax answered 2019-08-24T03:21:39Z
3 votes

我不得不将我的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"
    }
user6428609 answered 2019-08-24T03:22:03Z
3 votes

这意味着系统上安装的Android Build Tools不是应用程序的配置文件(您的配置文件指向23.0.1),但您的系统上可能有23,24或25.0。*。

解决此问题的解决方案:

  1. 编辑项目文件夹中位于build.gradle下的build.gradle文件
  2. 查找条目build.gradle" 23.0.1",并将其替换为您系统上的最新版本。 你可以在这里找到它:C:\Program Files (x86)\Android\android-sdk\build-tools

或者您可以尝试在系统中安装build.gradle文件中的版本(使用SDK管理器)。

llioor answered 2019-08-24T03:22:57Z
1 votes

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

install from android studio

Sebastien Lorber answered 2019-08-24T03:23:23Z
1 votes

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

user5710491 answered 2019-08-24T03:23:49Z
1 votes

如果您有Build Tools版本24.0.1,请更新您的Android/Sdk/build-tools/24.0.1/source.properties以匹配Pkg.Revision

我的Android/Sdk/build-tools/24.0.1/source.properties已将Pkg.Revision设置为24.0.0

Muqsith answered 2019-08-24T03:24:23Z
0 votes

我有这个问题试图在命令行上构建以下反应本机的文档。 我通过在android studio中打开项目解决了这个问题。 不匹配的依赖项将出现在应用程序底部的构建失败小吃栏中。 对于每个故障,请单击链接以解决问题。

bradford condon answered 2019-08-24T03:24:50Z
0 votes

我发现,如果您从react-native项目中卸载了一些软件包,并且在页面底部的构建gradle依赖项中仍有软件包,那么也会发生这种情况:

{ project(':react-native-sound-player') } 确保在删除项目后删除MainApplication.java文件中的相关代码(':react-native-sound-player')

Kêvâl Dholakiya answered 2019-08-24T03:25:25Z
translate from https://stackoverflow.com:/questions/33155087/react-native-on-android-failed-to-find-build-tools