React Native trên Android không tìm thấy Công cụ xây dựng


92

Nguyên nhân nào gây ra vấn đề sau? Phiên bản SDK Android của tôi không được hỗ trợ?

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       

Từ phiên bản v25 của trình quản lý SDK, giờ đây bạn phải cài đặt đúng Công cụ xây dựng từ Android Studio vì androidlệnh đã bị xóa: stackoverflow.com/a/44295114/82609
Sebastien Lorber,

Câu trả lời:


136

Có lẽ bạn cần cập nhật Công cụ xây dựng của mình.

Tôi gặp sự cố khi cố gắng cập nhật từ giao diện đồ họa, nó không hiển thị phiên bản nhỏ chính xác, vì vậy tôi không thể cập nhật lên nó.

Nó đã được giải quyết bằng cách xem các phiên bản có sẵn từ thiết bị đầu cuối với:

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

[...]

Và cài đặt phiên bản phù hợp với:

android update sdk -a -u -t 4

3
androidChương trình này là gì? Tôi lấy nó ở đâu?
jameshfisher

2
@jameshfisher nó là một phần của Android SDK, nó nằm ở thư mục "tools", ví dụ: ~ / android-sdk / tools / android
edur 29/08/16

Tôi đã thử cập nhật bằng Android Studio vài lần, nhưng nó không bao giờ hoạt động. Tuy nhiên, lệnh này đã làm được. Cảm ơn bạn.
jordancooperman 20/12/16

Nó nằm trong android-sdk-linux trong dự án phản ứng thực sự.
Ghita Tomoiaga

Lưu ý trong phiên bản mới của trình quản lý SDK các androidlệnh không làm việc nữa và người ta phải chạy Android Studio để truy cập vào thiết lập thấy điều này stackoverflow.com/a/44295114/82609
Sebastien Lorber

73

Chỉ cần lưu ý - có thể gặp lỗi này vì phiên bản duy nhất của công cụ xây dựng bạn đã cài đặt quá mới .

Tôi nhận được chính xác lỗi mà OP mắc phải (phàn nàn rằng react-native không thể tìm thấy phiên bản Build Tools 23.0.1). Khi tôi kiểm tra Trình quản lý SDK Android của mình, tôi thấy điều này:

ảnh chụp màn hình hiển thị 23.0.2 "Đã cài đặt" nhưng 23.0.1 "Chưa cài đặt"

Tôi đã ngây thơ nghĩ rằng cài đặt phiên bản mới nhất của Build-tools (23.0.2 tại thời điểm viết bài) sẽ hoạt động, nhưng dường như không. Cài đặt bổ sung 23.0.1 đã khắc phục sự cố.


cùng một vấn đề ở đây. không có cách nào để sử dụng các công cụ xây dựng mới hơn? có thể một số cấu hình.
sodik

Đề xuất này cũng làm việc cho tôi. 23.0.2 quá mới, hãy xem. Cảm ơn.
Fernando

1
@boatcoder câu trả lời này (cài đặt các công cụ xây dựng cũ hơn) không kém hơn so với sodik (sửa đổi build.gradleđể làm cho React Native sử dụng các công cụ xây dựng mới hơn). Android Build Tools dường như tuân theo SemVer, vì vậy, việc sửa đổi build.gradleđể sử dụng bản vá mới hơn hoặc phiên bản nhỏ hơn thường phải an toàn, có thể cung cấp một số bản sửa lỗi cấp nền tảng hoặc cải tiến hiệu suất và giúp bạn không phải tải xuống bất kỳ thứ gì. Nhưng nó sẽ phá vỡ ứng dụng của bạn nếu được thực hiện trên bản phát hành phiên bản chính và gây ra một số rủi ro ngay cả với các bản vá lỗi / bản phát hành nhỏ vì bạn đang sử dụng RN với các công cụ xây dựng mà Facebook không có ý định.
Mark Amery vào

28

Tôi cũng gặp sự cố với phiên bản mới hơn của các công cụ Xây dựng SDK (giống như Mark) nhưng tôi đã giải quyết được bằng cách sửa đổi android/app/build.gradlevà thiết lập phiên bản phù hợp, ví dụ:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

CẬP NHẬT: Như Mark đã đề xuất, tốt nhất là chỉ nên cập nhật phiên bản nhỏ (hoặc bản vá) theo cách này. Một lý do khác tại sao không cập nhật phiên bản này là khi bạn có rất nhiều lib của bên thứ 3 có phần gốc - bạn có thể kết thúc việc cập nhật tất cả chúng. Vì vậy, bạn phải cân nhắc những lợi ích có thể có của phiên bản mới hơn so với công việc nhiều hơn một chút.


1
đừng quên thay đổi dòng 85 targetSdkVersion 22đến targetSdkVersion 23là tốt.
Xianlin

Tôi thấy rằng tệp build.gradle được tạo có buildToolsVersion "23.0.1" nhưng tôi chỉ cài đặt phiên bản 23 (23.0.0) - Không chắc "react-native init" tìm số phiên bản SDK android / tools từ đâu. Vậy nguyên nhân thực sự là do lệnh react-native init không sử dụng số phiên bản công cụ có sẵn?
ferdil

Tôi tin rằng 23.0.1 đã được sửa (có thể có thể thay đổi với các phiên bản RN) nhưng không có phát hiện afaik.
sodik

Cảm ơn, điều này đã giải quyết được vấn đề của tôi, Đã thay đổi từ 23 thành 25 và 23.0.1 thành 25.0.0
niren 9/11/16

4

Cần sửa đổi 4 tệp

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"

3

Tôi đã phải thay đổi dự án Android của build.gradlemình thành:

compileSdkVersion 23
buildToolsVersion "23.0.3"

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

3

Điều đó có nghĩa là Công cụ xây dựng Android được cài đặt trên hệ thống của bạn không phải là thứ khác trong tệp cấu hình của ứng dụng (tệp cấu hình của bạn trỏ đến 23.0.1) nhưng bạn có thể có 23, 24 hoặc 25.0. * Trên hệ thống của mình.

Giải pháp để khắc phục sự cố này:

  1. Chỉnh sửa build.gradletệp nằm anroid/apptrong thư mục dự án của bạn
  2. Tìm mục nhập buildToolsVersion"23.0.1" và thay thế nó bằng phiên bản mới nhất mà bạn có trên hệ thống của mình. Bạn có thể tìm thấy nó ở đây:C:\Program Files (x86)\Android\android-sdk\build-tools

HOẶC bạn có thể cố gắng cài đặt trong hệ thống của mình phiên bản mà bạn có trong build.gradletệp (với trình quản lý SDK).


1

Từ Android SDK manager v25, bạn phải cài đặt các công cụ xây dựng chính xác trực tiếp từ Android Studio vì androidlệnh không hoạt động nữa:

cài đặt từ studio android


Để đến màn hình này từ bên trong Andriod Studio. tệp -> cài đặt -> SDK Android -> Công cụ SDK -> phía dưới bên phải "Hiển thị chi tiết gói" Tôi đã thêm nhận xét này vì tôi đã mất một lúc để tìm thấy nó.
Jason Allshorn

1

Tìm số phiên bản trong /Users/username/Library/Android/sdk/build-toolsthư mục, sau đó sửa đổi số phiên bản buildToolsVersiontương ứng với cấu hình Gradle


1

Nếu bạn có phiên bản Công cụ xây dựng 24.0.1, hãy cập nhật của bạn build.gradleđể phù hợpbuildToolsVersion "24.0.0"

Của tôi Android/Sdk/build-tools/24.0.1/source.propertiesđã Pkg.Revisionđặt thành 24.0.0.


0

Tôi đã gặp sự cố này khi cố gắng tạo tại dòng lệnh sau tài liệu của react native. Tôi đã giải quyết vấn đề này bằng cách mở dự án trong studio android. Các phần phụ thuộc không khớp sẽ xuất hiện trong thanh nhanh lỗi xây dựng ở cuối Ứng dụng. Đối với mỗi lỗi, hãy nhấp vào liên kết để giải quyết vấn đề.


0

Tôi phát hiện ra rằng điều đó cũng xảy ra nếu bạn gỡ cài đặt một số gói khỏi dự án gốc phản ứng của mình và vẫn còn các gói trong phần phụ thuộc vào lớp xây dựng của bạn ở cuối trang như:

{ project(':react-native-sound-player') } Đảm bảo xóa mã được liên kết trong tệp MainApplication.java sau khi xóa dự án (': react-native-sound-player')

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.