Javascript Android上的React Native找不到生成工具

Javascript Android上的React Native找不到生成工具,javascript,android,reactjs,react-native,Javascript,Android,Reactjs,React Native,是什么导致以下问题?是否不支持我的Android SDK版本 正在启动JS服务器。。。 在设备上构建和安装应用程序(cd android&&gradlew.bat installDebug)。。。 失败:生成失败,出现异常。 *出了什么问题: 配置项目“:app”时出现问题。 >找不到版本23.0.1的生成工具 您可能需要更新构建工具 当我试图从图形界面更新时,我遇到了这个问题,它没有显示确切的次要版本,所以我无法更新到它 通过查看终端的可用版本,解决了此问题: android list sdk

是什么导致以下问题?是否不支持我的Android SDK版本

正在启动JS服务器。。。
在设备上构建和安装应用程序(cd android&&gradlew.bat installDebug)。。。
失败:生成失败,出现异常。
*出了什么问题:
配置项目“:app”时出现问题。
>找不到版本23.0.1的生成工具

您可能需要更新构建工具

当我试图从图形界面更新时,我遇到了这个问题,它没有显示确切的次要版本,所以我无法更新到它

通过查看终端的可用版本,解决了此问题:

android list sdk -a

[……]

并安装正确的版本,包括:

android update sdk -a -u -t 4

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

我得到的正是OP得到的错误(抱怨react native找不到版本23.0.1的构建工具)。当我检查我的Android SDK管理器时,我看到:


我曾天真地认为安装最新版本的构建工具(在编写本文时为23.0.2)可以工作,但显然不行。另外安装23.0.1修复了这个问题。

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

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...
更新:正如马克所建议的,用这种方式只更新次要(或补丁)版本是明智的。不更新此版本的另一个原因是,当您有大量第三方LIB使用本机部分时,您可能会最终更新所有LIB。因此,您必须权衡更新版本与更多工作可能带来的好处。

需要修改4个文件

grep buildToolsVersion*-r | grep 23.0.1


我不得不将我的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"
    }

如果您有构建工具版本24.0.1,则更新您的
Build.gradle
以匹配
buildToolsVersion“24.0.0”


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

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

这意味着安装在您系统上的Android构建工具与应用程序的配置文件(配置文件指向23.0.1)不同,但您的系统上可能有23、24或25.0.*

解决此问题的方法:

  • 编辑项目文件夹中
    anroid/app
    下的
    build.gradle
    文件
  • 查找条目
    buildToolsVersion
    “23.0.1”,并将其替换为系统上的最新版本。您可以在这里找到它:
    C:\ProgramFiles(x86)\Android\Android sdk\build tools

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

    我在react native的文档之后尝试在命令行中构建时遇到此问题。我通过在android studio中打开项目解决了这个问题。不匹配的依赖项将出现在应用程序底部的构建失败snackbar中。对于每个故障,请单击链接以解决问题。

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


    我发现,如果您从react本机项目中卸载了一些包,但页面底部的build gradle依赖项中仍有包,则也会发生这种情况,如:

    {
    项目(“:react native sound player”)
    }
    

    请确保在删除项目(“:react native sound player”)后删除main Application.java文件中的关联代码。

    这里也有同样的问题。难道没有一种方法可以使用更新的构建工具吗?也许是一些配置。这个建议对我也有效。23.0.2太新了,如图所示。谢谢。@boatcoder这个答案(安装旧的构建工具)的正确性不亚于sodik的(修改
    build.gradle
    使React Native使用新的构建工具)。Android构建工具似乎遵循SemVer,因此修改
    Build.gradle
    以使用更高的补丁或次要版本通常应该是安全的,可能会提供一些平台级的错误修复或性能改进,并使您无需下载任何东西。但如果在主要版本发布时完成,它将破坏你的应用程序,即使是补丁/次要版本,也会带来一些风险,因为您将RN与Facebook不打算使用的构建工具一起使用。别忘了将第85行
    targetSdkVersion 22
    更改为
    targetSdkVersion 23
    。我发现生成的build.gradle文件有buildToolsVersion“23.0.1”,但我只有版本23(23.0.0)已安装-不确定“react native init”从何处找到android/tools SDK版本号。因此,原因实际上是react native init命令没有使用可用的工具版本号?我相信23.0.1是固定的(可能会随RN版本而更改),但afaik没有检测到。谢谢,这解决了我的问题,从23改为25,从23.0.1改为25.0.0这是什么
    android
    程序?我从哪里得到它?@jameshfisher它是Android SDK的一部分,它位于“工具”目录中,例如:~/Android SDK/tools/androidI多次尝试使用Android Studio进行更新,但都没有成功。但这一命令起了作用。比
    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"
    
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    
    defaultConfig {
        applicationId "com.demoproject"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }