React native: Không tìm thấy dự án Android. Có thể chạy android gốc phản ứng trước?


89

Tôi đã gặp sự cố trong dự án React-Native trước đó đang hoạt động tốt nhưng đột nhiên nó ngừng hoạt động. Bất cứ khi nào tôi sử dụng lệnh:

react-native run-android

Tôi đã gặp lỗi :

Không tìm thấy dự án Android. Có thể chạy android gốc phản ứng trước?

Tôi đã thử chạy:

react-native android

Nhưng nó nói:

Unrecognized command 'android' Run react-native --help to see list of all available commands

Sau khi thử:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native eject

Lỗi trả về là:

Quét các thư mục tìm liên kết tượng trưng trong D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) Ứng dụng namephải được xác định trong app.jsontệp cấu hình để xác định tên dự án. Nó không được chứa bất kỳ khoảng trắng hoặc dấu gạch ngang nào.

Đây là tệp app.json:

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

1
nếu thư mục android bị thiếu trong chỉ thị gốc thì hãy chạy phản ứng tự nhiên eject.
Khurshid Ansari

1
@Khurshid Ansari giải pháp của bạn không hoạt động do lỗi sắp xảy ra: "Tên ứng dụng phải được xác định trong tệp cấu hình app.json để xác định tên dự án" ngay cả khi tên được xác định. Vui lòng xem câu hỏi cập nhật.
Abhinav Saxena

Câu trả lời:


155

Tôi đưa ra câu hỏi này và tự trả lời vì tôi nghĩ nó sẽ giúp ích cho những người đang đối mặt với vấn đề tương tự. Tôi đã đấu tranh rất nhiều để tìm ra lý do thực sự đằng sau đó là lỗi hiển thị trong thiết bị đầu cuối không chính xác.

Để giải quyết vấn đề, vui lòng nâng cấp gói gốc phản ứng.

  1. Đi tới thư mục gốc của Dự án .

  2. Nâng cấp gói gốc React trong Command Prompt bằng cách nhập:

    react-native upgrade.

  3. Sau đó, Chấp nhận cập nhật tất cả các Tệp bằng cách nhập y (Yes)vào Dấu nhắc Lệnh .

Tham khảo: https://github.com/facebook/react-native/issues/9312


9
Đã lưu ngày :)
Muhammad

Gói gốc của React được tìm thấy ở đâu? xin vui lòng thực hiện các bước rõ ràng
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris Như đã đề cập trong câu trả lời, gói gốc phản ứng có thể được nâng cấp trên gốc Dự án. Vì vậy, hãy mở dấu nhắc lệnh và đi tới thư mục gốc của dự án. Sau đó nâng cấp gói gốc phản ứng.
udai

nó được nâng cấp gốc phản ứng mà tôi không muốn.
Khurshid Ansari

Giải pháp làm việc của tôi là bên dưới, không có giải pháp nào ở trên phù hợp với tôi :: 1. Mở trình quản lý AVD trong Android Studio và chạy một thiết bị ảo (bạn có thể đóng AS sau đó) 2. CMD vào thư mục dự án của bạn và gõ 'expo start' 3. khi Expo đã bắt đầu lựa chọn phương án 2 đó là "Bấm một dành cho Android emulator" Nó sẽ cài đặt hội chợ trên thiết bị ảo và bạn có thể kiểm tra từ đó
Paul Gwamanda

23

Tôi biết đó là một câu hỏi cũ nhưng bất kỳ giải pháp nào trong số đó không hiệu quả với tôi và có thể có những người khác giống như tôi. Tôi đã giải quyết vấn đề của mình khi chạy lệnh này trước đâyrun-android

react-native eject

1
vì một số lý do mà điều này cũng đã xảy ra với tôi, tôi đã thử phiên bản mới hơn của bản nâng cấp gốc phản ứng bằng cách sử dụng "react-native-git-upgrade" như được đề xuất khi bạn chạy "react-native upgrade", nó không hoạt động với tôi.
Zaid Qureshi

2
lệnh này tái tạo android và ios thư mục trong dự án của bạn
Khurshid Ansari

1
Tôi nghĩ đây là câu trả lời thích hợp. Không chỉ vì nó hiệu quả với tôi, mà bởi vì sự hiểu biết của tôi từ các tài liệu, đây là cách dự định để thực hiện và do đó không có các tác dụng phụ khác.
Daan

8
Các ejectlệnh đã được gỡ bỏ từ react-native.
Phantom Watson

16

Mở Thư mục gốc dự án React Native của bạn và định vị android -> ứng dụng -> xây dựng -> sản phẩm trung gian -> sign_config -> gỡ lỗi -> out -> sign-config.json. xóa sign-config.json tệp này thử lại

Hoặc là

1) Đôi khi nếu chúng ta có phiên bản gốc của react native và một số gói mới được cài đặt không hỗ trợ phiên bản cũ hơn. Sau đó, bạn phải cập nhật dự án gốc phản ứng bằng lệnh nâng cấp phản ứng gốc.

  1. Sau khi cập nhật xong dự án hiện tại lên phiên bản mới, lỗi này sẽ được giải quyết.

9

Đảm bảo bắt đầu dự án bằng lệnh (non-expo):

react-native init <your-project-name>

Nếu thư mục hiện có, hãy làm theo:

phản ứng tự nhiên đẩy ra


Trong phiên bản mới nhất của react-native, gợi ý này xuất hiện khi bạn cố gắng phát hành lệnh:

react-native eject

Quét các thư mục tìm liên kết tượng trưng trong D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) Ứng dụng namephải được xác định trong app.jsontệp cấu hình để xác định tên dự án. Nó không được chứa bất kỳ khoảng trắng hoặc dấu gạch ngang nào.

Bây giờ khi bạn phát hành lệnh sau:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native upgrade

Phần sau hiển thị:

Quét các thư mục tìm liên kết tượng trưng trong D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms) Bạn nên cân nhắc sử dụng công cụ nâng cấp mới dựa trên Git. Nó giúp nâng cấp dễ dàng hơn bằng cách tự động giải quyết hầu hết các xung đột. Để sử dụng nó: - Quay lại phiên bản cũ của React Native - Chạy "npm install -g react-native-git-upgrade" - Chạy "react-native-git-upgrade" Xem https://facebook.github.io /react-native/docs/upgrading.html phiên bản react -native trong "package.json" không khớp với phiên bản đã cài đặt trong "node_modules". Hãy thử chạy "npm install" để sửa lỗi này. Hủy bỏ.

Trong các gợi ý về các câu lệnh phản ứng gốc của Facebook, có một giải pháp rõ ràng.

Các lệnh này kiểm tra phiên bản hiện tại và có cần cập nhật hay không.

Một giải pháp khác:

react-native: Lệnh run-androidkhông được công nhận. Có thể do cài đặt npm

Vui lòng xem thêm:

Giải pháp cho "Expo: không thể tìm thấy một mô-đun LogReporter"


Câu trả lời được chấp nhận cho tôi, +10 đại diện. để @Abhinav
Saeed

8

Tôi đã làm như thế này ... Đã làm việc !!

  1. Trong bản nâng cấp gốc của Dự án CMD chạy phản ứng gốc .
  2. nếu bạn vẫn gặp sự cố, hãy đảm bảo rằng bạn có react-native trong phụ thuộc json trong package.json , hãy thêm nó nếu không
  3. nếu bạn vẫn gặp sự cố, hãy tải phiên bản của react native trong cmd bằng cách sử dụng react-native -v và kiểm tra xem giá trị trả về trong cmd và package.json có giống nhau không. cập nhật package.json với giá trị trả về bằng cmd

Đây là vấn đề của tôi đã được giải quyết.


5

Mở Command Prompt với tư cách Quản trị viên và truy cập thư mục dự án, chạy android (npx react-native run-android)


3

Chúng tôi gặp sự cố này vì các tệp từ thư mục android gradlewgradlew.bat (tập lệnh khởi động Gradle cho UN * X, Windows tương ứng) bằng cách nào đó đã đi vào tệp .gitignore toàn cầu và do đó không được hiển thị trên môi trường cục bộ.

Trên thực tế, việc chạy lệnh nâng cấp gốc phản ứng sẽ khôi phục các tệp đó, do đó khắc phục được sự cố.


3

Như một phần bổ sung, trong trường hợp không tìm thấy lệnh react-native, bạn nên cài đặt react-native CLI:

npm install -g react-native-cli

Sau đó, bạn có thể làm theo các bước người ta nói ở trên.

Thêm chi tiết: react-native: command not found


2

Nếu bạn bắt đầu dự án của mình bằng cách làm theo

npm install -g create-react-native-app
create-react-native-app MyReactNative
npm install -g react-native-cli
npm start

Sau đó, bạn có thể đối mặt với vấn đề được đề cập ở trên trong câu hỏi Vì vậy, giải pháp là:

npm run eject

2

Tôi đã đối mặt với vấn đề này hôm nay và không có giải pháp nào phù hợp với tôi, vì vậy tôi đã tìm một giải pháp khác.

AndroidManifest.xml được định dạng không hợp lệ sẽ gây ra sự cố này , có lẽ bạn đã đặt màn hình giật gân như tôi hôm nay và không định dạng AndroidManifest theo cách chính xác


1

Ở đây, app.json không có tên, nhưng nó có cấu hình liên quan đến triển lãm. Vì vậy, chỉ cần thêm các trường tên và tên hiển thị trong app.json.

app.json (hai dòng đầu tiên):

{
"name": "AwesomeProject",
"displayName": "Awesome Project",
"expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

Sau đó, chỉ cần chạy:

$ react-native eject

thông tin Tạo thư mục iOS.

thông tin Tạo thư mục Android.

Không cần thực hiện nâng cấp gốc phản ứng.


trên thực tế, "expo eject" cũng hoạt động tốt hơn. Nó cung cấp cho tôi các tùy chọn và cập nhật app.json và tạo các thư mục android / ios.
hp2017,

1

Xóa tệp: React Native Project Root Directory và định vị android -> app -> build -> Intermediate -> sign_config -> debug -> out -> sign-config.json.


1

Chạy Terminal với tư cách Quản trị viên trong Windows đã giải quyết được vấn đề cho tôi ... Các giải pháp khác không hoạt động.


Đây chỉ là câu trả lời nhờ câu trả lời hiện có của karthik mano, phải không? Nếu không, vui lòng nói rõ hơn câu trả lời này cung cấp thông tin chi tiết bổ sung nào.
Yunnosch

1

Tôi đang sử dụng Android Studio (không phải hội chợ triển lãm) và điều này phù hợp với tôi

react-native init <your-project-name>

1

Bạn phải chạy cmd của mình với admin priviliges. Điều đó đã giải quyết vấn đề tương tự cho tôi. Không làm "đẩy ra" hay bất cứ điều gì khác.


Có rất nhiều câu trả lời tương tự cho cùng một câu hỏi. Thay vì thêm câu trả lời của bạn, bạn chỉ có thể ủng hộ câu trả lời hiện có nếu nó giúp ích cho bạn.
Deepak Terse

1

Mở Thư mục gốc dự án React Native của bạn và định vị android -> ứng dụng -> xây dựng -> sản phẩm trung gian -> sign_config -> gỡ lỗi -> thoát -> sign-config.json

Xóa tệp và thử lại.



0

Giải pháp làm việc của tôi là bên dưới, không có giải pháp nào ở trên phù hợp với tôi:

Đĩa CD vào thư mục dự án của bạn và nhập expo start --android.

Hoặc chặng đường dài:

  1. Mở trình quản lý AVD trong Android Studio và chạy một thiết bị ảo (bạn có thể đóng AS sau đó)
  2. CMD vào thư mục dự án của bạn và gõ 'expo start'
  3. Khi Expo đã bắt đầu, hãy chọn tùy chọn 2 là "Nhấn phím a cho trình giả lập Android"

Nó sẽ cài đặt triển lãm trên thiết bị ảo và bạn có thể kiểm tra từ đó


0

Khi tôi chạy react-native eject, tôi gặp lỗi này:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Xóa MyProject/androidthư mục.
  • Chạy react-native ejectĐiều này đã tạo androidthư mục

  • Sau đó chạy react-native run-androidđể xây dựng android


0

Bạn nên cân nhắc sử dụng công cụ nâng cấp mới dựa trên Git. Nó giúp nâng cấp dễ dàng hơn bằng cách tự động giải quyết hầu hết các xung đột. Để sử dụng nó: - Quay lại phiên bản cũ của React Native - Chạy "npm install -g react-native-git-upgrade" - Chạy "react-native-git-upgrade" Xem https://facebook.github.io /react-native/docs/upgrading.html


0

Nếu bạn đã tạo dự án của mình bằng expolệnh, chẳng hạn như expo init projectname, sau đó bạn phải loại bỏ dự án của mình:

expo eject

Nếu bạn đã tạo dự án của mình react-native init projectNamethì bạn phải sử dụng

react-native eject

Lệnh eject đã bị xóa khỏi
react

0

Có thể đã quá muộn, tôi đã thay thế Androidthư mục từ một tệp sao lưu. Nó đã làm việc cho tôi.


0

Tôi giải quyết vấn đề này bằng cách giết chết tất cả các trường của java.exe với: taskkill /f /im java.exe.


0

Tôi đã gặp lỗi tương tự trong một dự án (được tạo bằng React Native CLI):

nhập mô tả hình ảnh ở đây

hóa ra tôi đã gặp lỗi cú pháp trong tệp kê khai Android của mình (android / app / src / main / AndroidManifest.xml).


0

Trong trường hợp của tôi, tôi đã quên thêm Sudo. Đã sửa như sau,

sudo npx react-native run-android

0

Xóa sign-config.json tiếp theo hãy thử lại react-native run-android

Tập tin sign-config.json Đường dẫn: android -> app -> build -> Intermediate -> sign_config -> debug -> out -> sign-config.json


0

Tôi nghĩ rằng một điều đơn giản hơn mà bạn có thể đã kiểm tra, đó là nếu trước đây bạn chạy dự án với vai trò khác của người dùng, như trong windows nếu trước đó bạn đã chạy android react-native với vai trò quản trị viên.


0

Xóa phản ứng android gốc build foldervà sau đó thử lại lệnhnpx react-native run-android

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.