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.properties
将Pkg.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)?