Android 上的 React Native 找不到构建工具

Posted

技术标签:

【中文标题】Android 上的 React Native 找不到构建工具【英文标题】:React Native on Android failed to find Build Tools 【发布时间】:2016-01-14 07:09:12 【问题描述】:

是什么导致了以下问题?不支持我的 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 安装正确的构建工具,因为删除了 android 命令:***.com/a/44295114/82609 【参考方案1】:

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

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

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

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

【讨论】:

这是什么android 程序?我在哪里得到它? @jameshfisher 它是 Android SDK 的一部分,它位于“工具”目录例如:~/android-sdk/tools/android 我尝试用 Android Studio 更新几次,但都没有成功。这个命令虽然做到了。谢谢。 其实是在react项目的android-sdk-linux中。 请注意,在新版本的 SDK 管理器中,android 命令不再起作用,必须运行 Android Studio 才能访问此设置,请参阅 ***.com/a/44295114/82609【参考方案2】:

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

我得到了 OP 得到的错误(抱怨 react-native 找不到 Build Tools 修订版 23.0.1)。当我检查我的 Android SDK 管理器时,我看到了这个:

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

【讨论】:

这里有同样的问题。没有办法使用更新的构建工具吗?也许是一些配置。 这个建议也对我有用。 23.0.2 太新了,去看看吧。谢谢。 @boatcoder 这个答案(安装较旧的构建工具)不亚于 sodik 的正确(修改 build.gradle 以使 React Native 使用较新的构建工具)。 Android Build Tools 似乎遵循 SemVer,因此修改 build.gradle 以使用更高版本的补丁或次要版本通常应该是安全的,可能会提供一些平台级别的错误修复或性能改进,并且不必下载任何东西。 但是如果在 主要 版本上完成它会破坏您的应用程序,并且由于您使用的是补丁/次要版本,因此会引入 一些 风险使用 Facebook 不打算使用的构建工具进行 RN。【参考方案3】:

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

android 
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

更新:正如 Mark 所建议的,以这种方式只更新次要(或补丁)版本是明智的。 更新此版本的另一个原因是当您拥有大量带有本机部分的 3rd 方库时 - 您最终可能会更新所有这些库。因此,您必须权衡新版本与更多工作可能带来的好处。

【讨论】:

别忘了将第 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【参考方案4】:

需要修改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"

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

解决此问题的解决方案:

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

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

【讨论】:

【参考方案7】:

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

【讨论】:

从 Andriod Studio 中进入这个屏幕。文件 -> 设置 -> Android SDK -> SDK 工具 -> 右下角“显示包详细信息”我添加了这条评论,因为我花了一段时间才找到它。【参考方案8】:

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

【讨论】:

【参考方案9】:

如果您有 Build Tools 版本 24.0.1,请更新您的 build.gradle 以匹配 buildToolsVersion "24.0.0"

我的Android/Sdk/build-tools/24.0.1/source.propertiesPkg.Revision 设置为24.0.0

【讨论】:

【参考方案10】:

我在尝试按照 react native 的文档在命令行中构建时遇到了这个问题。我通过在 android studio 中打开项目解决了这个问题。不匹配的依赖项将出现在 App 底部的构建失败提示栏中。对于每个失败,单击链接以解决问题。

【讨论】:

【参考方案11】:

我发现,如果您从 react-native 项目中卸载了一些包,并且页面底部的构建 gradle 依赖项中仍有包,例如:

project(':react-native-sound-player') 删除项目后请务必删除 MainApplication.java 文件中的关联代码(':react-native-sound-player')

【讨论】:

以上是关于Android 上的 React Native 找不到构建工具的主要内容,如果未能解决你的问题,请参考以下文章

React-Native Android - 找不到 com.android.tools:common

React Native:找不到哈希字符串'android-X'的目标

React Native:找不到com.android.tools.build:gradle:2.2.3

如何禁用 Android 上的设备后退按钮(react-native)?

react native 0.55.2上的Android构建错误

关于React Native Android找不到node的错误