Không thể tải tập lệnh từ tài sản index.android.bundle trên windows


357

Tôi đang cố gắng chạy dự án React Native đầu tiên của mình lần đầu tiên trên thiết bị của mình (Android 4.2.2).

Va tôi lây:

không thể tải tập lệnh từ tài sản index.android.bundle

Các lệnh mà tôi đã sử dụng:

  1. cd (project directory)
  2. react-native start
  3. react-native run-android

6
Trước khi thử câu trả lời đầu tiên của jerry, bạn đã đặt ANDROID_HOME trong biến môi trường và trong công cụ nền tảng đường dẫn.
Sagar Chavada

Đây là một lỗi trong phiên bản gần đây. Bạn phải sử dụng phiên bản trước bằng cách sử dụng init gốc tự động ProjectName --version = 0.55.4 Vấn đề cần được khắc phục.
Sulung Nugroho

cùng một lỗi, cùng một bối cảnh, nhưng cách khắc phục rất dễ dàng: đợi máy chủ gỡ lỗi thay đổi từ Loading dependency graph...sang Loading dependency graph, donevà nhấn tải lại trên ứng dụng.
Nino Filiu

Câu trả lời được chấp nhận là một hack cực kỳ bất tiện, làm phức tạp quá trình xây dựng và cơ sở mã. Có câu trả lời tốt hơn ở đây.
Andrew Koster

Sử dụng mkdir ... /assets && react-native bundle --platform..KHÔNG THỂ giải quyết vấn đề này hoàn toàn , kiểm tra điều này: stackoverflow.com/a/55511804/10139109
Ian Zhong

Câu trả lời:


947

Tôi đã gặp phải vấn đề tương tự trong khi làm theo hướng dẫn React Native (phát triển trên Linux và nhắm mục tiêu Android).

Đây vấn đề đã giúp tôi giải quyết vấn đề trong các bước tiếp theo.

  1. (trong thư mục dự án) mkdir android/app/src/main/assets
  2. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
  3. react-native run-android

Bạn có thể tự động hóa các bước trên bằng cách đặt chúng vào scriptsmột phần package.jsonnhư thế này:

"android-linux": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && react-native run-android"

Sau đó, bạn có thể chỉ cần thực hiện npm run android-linuxtừ dòng lệnh của bạn mỗi lần.


15
Nếu chúng ta muốn sửa đổi tập tin index.android.jsthì sao? mỗi lần trong terminal, chúng ta phải chèn lệnhreact-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
Maulik

9
nó sẽ bị kẹt Loading dependency graph...mỗi lần khi tôi chạy lại từ thiết bị đầu cuối và mất quá nhiều thời gian. FYI Tôi đang sử dụng Ubuntu 14.04
Maulik

12
Phản ứng các phiên bản mới hơn không chứa index.android.js, do đó, vui lòng sử dụng App.js với lệnh. :) Cảm ơn
Chinthaka Dinadasa

11
@ChinthakaDinadasa trong trường hợp của tôi index.js, không phải vậyApp.js
Felix

11
Anh chàng này cần một bức tượng! Ý tôi là nó thực sự hoạt động không chỉ trên linux mà cả trên windows 10 nữa
Reborn

126

Nếu bạn đang chạy ứng dụng của mình trên thiết bị vật lý và gặp lỗi này

unable to load script from assets index.android.bundle

hãy thử chạy lệnh:

adb reverse tcp:8081 tcp:8081

Nó làm việc cho tôi ...


Điều này đã khắc phục vấn đề của tôi! Cảm ơn!
Pablo

7
Đã làm cho tôi. Đối với những người không có công cụ nền tảng Android trên đường dẫn thiết bị đầu cuối của bạn trong windows, thì tệp thực thi adb nằm trong `C: \ Users \ YourUser \ AppData \ Local \ Android \ sdk \ platform-tools`
Mikepote

2
Tôi nghĩ rằng đây nên là câu trả lời chính xác, người khác có vẻ như là một hack.
Cristian Gomez

2
Điều này không hiệu quả với tôi (trên macOS)
szx

Điều này đã khắc phục sự cố cho tôi (Windows, chạy ứng dụng trên thiết bị vật lý). Đây là một trong những sửa lỗi được đề xuất trên hộp lỗi màu đỏ.
Tur1ng

101

Tôi đã dành hàng giờ cố gắng để tìm ra vấn đề này. Vấn đề của tôi không dành riêng cho Windows nhưng chỉ dành riêng cho Android.

Truy cập máy chủ phát triển làm việc cục bộ và trong trình duyệt của trình giả lập. Điều duy nhất không hoạt động là truy cập vào máy chủ phát triển trong ứng dụng.

Bắt đầu với Android 9.0 (API cấp 28), hỗ trợ Cleartext bị tắt theo mặc định.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

Xem để biết thêm thông tin: https://stackoverflow.com/a/50834600/1713216


11
Cảm ơn bạn. Đây là vấn đề của tôi sau khi nâng cấp targetSdkVersionlên 28.
bencergazda

Đây là câu trả lời chính xác. Nó thực sự khắc phục vấn đề giao tiếp mạng.
Andrew Koster


Cảm ơn vì đã gắn cờ này - đã hoàn toàn ngăn ứng dụng RN của tôi tải. Thất vọng vì không có thông báo lỗi nào tốt hơn trong vấn đề này: /
greg7gkb

2
Làm! Nếu tôi gặp bạn trực tiếp, tôi sẽ trao cho bạn huy chương (-:
Yaron Levi

61

Sử dụng phiên bản npm 4.3.0 Reac -igen-cli phiên bản 2.01 phiên bản Reac -igen 0.49.5

Trong thư mục dự án,

  • mkdir android/app/src/main/assets
  • react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
  • react-native run-android

Tên tệp đã thay đổi từ index.android.js thành index.js


3
Thật đáng buồn khi FB phát hành một phiên bản mới và thay vì sửa lỗi này - thứ rõ ràng đang tấn công hàng loạt người - họ phá vỡ công việc được chấp nhận!
Tom

@IgorGanapolsky Đảm bảo bạn có tệp index.bundle trong thư mục tài sản của mình
Darshan Pania

@DarshanPania Tập tin đó làm gì?
IgorGanapolsky

3
@IgorGanapolsky Tệp JS đó là một điểm vào ứng dụng của bạn. Từ RN 0,49 trở đi, chỉ có một tệp index.jsthay vì index.android.jshoặcindex.ios.js
Darshan Pania

1
cho linux:sudo react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
Đạo giáo Taohidul

42

Tôi đã phải đối mặt với cùng một vấn đề với một thiết bị Android thực sự.

Giải pháp: Dựa trên câu trả lời này của Niltoid

  1. Tìm IP địa phương của bạn
  2. Mở ứng dụng và lắc thiết bị Android của bạn
  3. Cài đặt Dev và> Máy chủ gỡ lỗi ...
  4. Dán IP và cổng của bạn; XXXX: 8088 "(trong đó X là IP cục bộ của bạn)

đối với người dùng Mac: mở tùy chọn mạng của bạn, tại đây bạn sẽ nhận được IP cục bộ của mình.


Làm việc cho tôi (y)
MAhipal Singh

22

Nếu bạn đang sử dụng Windows, hãy chạy các lệnh theo cách sau hoặc nếu bạn gặp lỗi "Không thể tìm thấy tệp mục nhập index.android.js"

  1. mkdir android\app\src\main\assets
  2. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

  3. react-native run-android


19

Bạn có thể làm theo hướng dẫn được đề cập trên trang chính thức để khắc phục vấn đề này. Sự cố này xảy ra trên thiết bị thực do gói JS nằm trên hệ thống phát triển của bạn và ứng dụng bên trong thiết bị thực của bạn không biết vị trí của nó.


Tôi đã gặp vấn đề này khi chạy trực tiếp từ studio android. sử dụng react-native run-androidcố định nó
yairsz

7
Liên kết của bạn không hoạt động nữa, bạn nên tham khảo các phần hữu ích chính trong tương lai để giữ thông tin tồn tại sau khi nguồn của nó chết.
Zac Grierson

Vậy làm thế nào để chạy cái này trên một thiết bị thực ??
IgorGanapolsky

1
@IgorGanapolsky tôi có cùng một vấn đề và đã sửa nó bằng tài liệu chính thức, bạn có thể dễ dàng kiểm tra môi trường của mình facebook.github.io/react-native/docs/rasty-on-device.html Tôi không thể tải porj từ studio android (và thư mục android) nhưng tôi có thể làm điều đó với thư mục gốc của dự án và thiết bị đầu cuối.
Ivan Titkov

15

Có vấn đề tương tự trong mac, Sau 2 ngày tôi cuối cùng cũng có thể làm việc được.

Kể từ khi Emulator cellular data was turned off, tôi đã nhận được unable to load script from assets index.android.bundle make sure your bundle is running.

Hãy chắc chắn rằng Emulator cellular data is turned onmáy chủ gói của bạn đã có thể đóng gói index.android.js. Hy vọng nó sẽ giúp cho một người đang trong giai đoạn phát triển.


Bạn làm gì Emulator cellular data is turned onvậy Đó là đâu Thiết bị ảo? Thiết bị thật?
Màu xanh lá cây

Trình giả lập có nghĩa là thiết bị ảo xuất phát từ studio android.
Srinivas

13

Tôi đã có vấn đề tương tự trong một số tháng nay. Ban đầu tôi đã sử dụng giải pháp của @ Jerry, tuy nhiên, đây là một giải pháp sai vì nó không khắc phục được hoàn toàn vấn đề. Thay vào đó, những gì nó đã làm là lấy mọi bản dựng làm bản dựng sản xuất có nghĩa là bất kỳ thay đổi nhỏ nào bạn thực hiện trong ứng dụng sẽ có nghĩa là việc xây dựng lại toàn bộ ứng dụng là cần thiết.

Mặc dù đây là một giải pháp tạm thời, nhưng về lâu dài nó hoạt động khủng khiếp vì bạn không còn có thể sử dụng các công cụ phát triển tuyệt vời của React Native như tải lại nóng, v.v.

Một giải pháp thích hợp được hiển thị:

Trong MainApplication.javatệp của bạn , thay thế như sau:

@Override
public boolean getUseDeveloperSupport() {
    return BuildConfig.DEBUG;
}

với

@Override
public boolean getUseDeveloperSupport() {
    return true;
}

vì một số lý do BuildConfig.DEBUGluôn trả về false và dẫn đến một tệp bó trong thư mục tài sản.

Bằng cách đặt thủ công điều này thành đúng, bạn đang buộc ứng dụng sử dụng trình đóng gói. Điều này sẽ không hoạt động trong sản xuất, vì vậy hãy chắc chắn thay đổi nó thành sai hoặc giá trị mặc định.

Đừng quên chạy

$ adb reverse tcp:8081 tcp:8081

1
đây là giải pháp thực sự cảm ơn!
keyerfaty

1
Thánh, đây là giải pháp thực tế. Câu trả lời được chấp nhận không hoạt động để tải lại nóng và không phải là cách khắc phục hợp pháp cho vấn đề này.
Ganesh Datta

11

1 Chuyển đến thư mục dự án của bạn và kiểm tra xem thư mục này có tồn tại không android/app/src/main/assets

  1. Nếu nó tồn tại thì xóa hai tập tin viz index.android.bundleindex.android.bundle.meta
  2. Nếu tài sản thư mục không tồn tại thì tạo thư mục tài sản ở đó.

2.Từ thư mục dự án gốc của bạn làm

cd android && ./gradlew clean

3. Cuối cùng, điều hướng trở lại thư mục gốc và kiểm tra nếu có một tệp nhập duy nhất được gọi làindex.js

  • Nếu chỉ có một tệp tức là index.js thì hãy chạy lệnh sau react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

  • Nếu có hai tệp tức là index.android.js và index.ios.js thì hãy chạy tệp này react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

    1. Bây giờ chạy react-native run-android

sau khi thử gần như tất cả các kịch bản này ... đây là giải pháp duy nhất hiệu quả với tôi. Cảm ơn bạn!!!!
MizAkita

Điều này đã làm việc với tôi sau khi gặp phải lỗi này theo hướng dẫn bắt đầu trên Ubuntu 18.04. Cảm ơn!
quay cuồng

Đó là công việc của tôi trong Mac os Catalina, Cảm ơn bạn
Hitesh

9

HĐH: Windows

Một cách khác để giải quyết vấn đề này sau khi thử hai phương pháp trên
(vì tôi đã cài đặt SDK không ở DEFAULT VỊ TRÍ như C: \ users \ "user_name" \ appdata \ local \ sdk )

Nếu bạn nhận thấy dòng lệnh được thông báo: "'adb' không được công nhận là lệnh nội bộ hoặc bên ngoài ..."

Vì vậy, đây là cách tôi vượt qua:
Ví dụ: Tôi đã cài đặt SDK trong D: \ Android \ sdk
Vì vậy, tôi sẽ chèn đường dẫn trong Biến hệ thống thêm 2 dòng:

D:\Android\sdk\tools  
D:\Android\sdk\platform-tools  

(Nếu bạn không biết cách chỉnh sửa Biến hệ thống, đây là chủ đề: /android/38321/what-do-i-type-in-path-variable-for-adb- máy chủ khởi động từ cmd / 38324 )

Sau đó tôi chạy lại cmd: react-native run-android

Nó làm việc cho tôi.


mặc dù nó không thực sự được kết nối - đây là một trong những vấn đề rất phổ biến và nó hoạt động như Thiên mô tả
Pixelartist

8

Trong trường hợp của tôi, tôi đã xóa dòng dưới MainApplication.java. (Cái mà trước đây tôi đã thêm nhầm.) : -

nhập com.facebook.react.BuildConfig;

Sau đó Clean Project và nhấn lệnh

run-android run-android


Cảm ơn, nó cũng giúp tôi.
Anil Ravsaheb Ghodake

6

Dành cho iOS:

Trong một thiết bị đầu cuối:

cd ios

Xóa thư mục bản dựng với: rm -r build

Chạy lại: react-native run-ios

Ngoài ra, bạn có thể mở Finder, điều hướng đến YOUR_PROJECT / iosxóa các build thư mục .

Sau đó chạy lại: react-native run-ios

Dành cho ANDROID:

Trong một thiết bị đầu cuối:

cd android/app

Xóa thư mục bản dựng với: rm -r build

Chạy lại: react-native run-android

Ngoài ra, bạn có thể mở Finder, điều hướng đến YOUR_PROJECT / android / appxóa các build thư mục .

Sau đó chạy lại: react-native run-android


2
Hoạt động cho Android! sạch sẽ và dễ dàng
llioor

Xóa android/app/binthư mục trên Windows cũng hoạt động. Tôi đã xây dựng dự án trực tiếp từ Android Studio, thay vì chạy react-native run-androidvà có vẻ như nó đã xây dựng một cái gì đó sai mà tôi phải xóa thủ công.
Lucas Bustamante

5

Đối với vấn đề này, tôi chỉ giải quyết nó bằng cách chạy:

react-native start

sau đó

adb reverse tcp:8081 tcp:8081

trên dòng lệnh. Và sau đó tôi có thể chạy:

react-native run-android

Vì vậy, tôi sẽ không lãng phí thời gian để chạy:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

mỗi lần.


5

Tôi cũng đã phải đối mặt với vấn đề này bởi vì khi tôi chạy các dự án trên trình giả lập thì nó hoạt động tốt nhưng trên một thiết bị thực thì nó lại báo lỗi này. Vì vậy, tôi giải quyết vấn đề này bằng giải pháp sau đây

Bước 1: Trước hết, hãy mở cmd và chuyển đến thư mục Công cụ nền tảng SDK của bạn

cd C:Development\Android\Sdk\Platform-tools

Bước 2 : bây giờ chạy lệnh này:

adb devices

sau khi lệnh này kiểm tra thiết bị của bạn được liệt kê trong dấu nhắc lệnh

Bước 3 : bây giờ chạy cái này

adb reverse tcp:8081 tcp:8081

Bây giờ thiết lập của bạn đã hoàn tất

Bước 4 : Chuyển đến thư mục dự án của bạn và chạy lệnh này

react-native run-android

4

Ubuntu

Lần đầu tiên, tôi đã tạo ứng dụng mới với react-native init project-name. Tôi đã nhận được cùng một lỗi. Vì vậy, tôi làm các bước sau để giải quyết điều này trong trường hợp của tôi.

  1. Đầu tiên chạy sudo chown user-name-of-pc /dev/kvmtrong trường hợp của tôi.
  2. Trong khi gỡ lỗi từ điện thoại Android của bạn, chọn Use USB to Transfer photos (PTP).

  3. Tạo thư mục assets trong tên dự án / android / app / src / main

  4. đảm bảo index.jscó sẵn trong root thư mục dự án của bạn và sau đó chạy bên dưới lệnh từ bàn điều khiển sau cd project-namethư mục.

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

hoặc cho index.android.js rồi

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

  1. chạy lệnh ./studio.shtrong android-studio/binthư mục. Nó sẽ mở Android Studio.

  2. chạy lệnh react-native run-android.

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


4

Đảm bảo trình tạo metro đang chạy để đồng bộ hóa thiết bị và máy chủ của bạn

Đầu tiên, chạy lệnh này để chạy trình xây dựng tàu điện ngầm

bắt đầu

Sau đó, bạn có thể bắt đầu xây dựng trong phản ứng bản địa

run-android run-android

Lần này họ không có lỗi. Nếu bạn muốn mã của bạn được tải lại trực tiếp khi thay đổi. Lắc thiết bị của bạn và sau đó nhấn Bật Tải lại trực tiếp


3

Đảm bảo rằng bạn đã thêm / path / to / sdk / platform-tools vào biến đường dẫn của bạn.

Khi bạn chạy Reac -igen run-android, nó sẽ chạy lệnh adb Reverse tcp: <device-port> tcp: <local-port> để chuyển yêu cầu từ thiết bị của bạn đến máy chủ chạy cục bộ trên máy tính của bạn. Bạn sẽ thấy một cái gì đó như thế này nếu không tìm thấy adb.

/bin/sh: 1: adb: not found
Starting the app (.../platform-tools/adb shell am start -n 
com.first_app/com.first_app.MainActivity...
Starting: Intent { cmp=com.first_app/.MainActivity }

điều này nên đúng với hầu hết các câu trả lời được đánh giá cao, vì đó là một trong những điều đầu tiên cần kiểm tra
eis

3

Nó có thể được gây ra bởi các tài sản không được liên kết trong cơ sở mã dự án React Native của bạn, chẳng hạn như khi bạn đổi tên ứng dụng / gói ứng dụng dự án hoặc thêm gói bên ngoài mà không liên kết chính xác, chẳng hạn.

Đơn giản chỉ cần thử nó trong thư mục gốc dự án của bạn:

react-native link

react-native run-android

2

Nếu khi chạy react-native run-androidlệnh, dòng thứ hai của dấu vết là

JS server not recognized, continuing with build...

điều đó có nghĩa là packager cho ứng dụng không thể khởi động và ứng dụng sẽ không tải được nếu không có thêm một số bước. Lưu ý rằng kết thúc theo dõi vẫn báo cáo thành công:

BUILD SUCCESSFUL

Vấn đề có lẽ là một số xung đột cổng (trong trường hợp của tôi đó là trang IIS mặc định mà tôi hoàn toàn quên mất). Một biểu hiện khác của vấn đề sẽ là lỗi mở http://localhost:8081/debugger-uiURL trong Chrome.

Khi xung đột cổng được giải quyết, dấu vết sẽ báo cáo

Starting JS server...

sau đó một cửa sổ Node bổ sung sẽ mở ( node ...cli.js start) và ứng dụng sẽ tải / tải lại thành công.

Sau đó, bạn sẽ có thể mở bảng điều khiển gỡ lỗi trong Chrome bằng http://localhost:8081/debugger-ui.


2

Tôi đã có cùng một vấn đề ngay cả khi chạy trên một trình giả lập. Tôi đã làm một cách nhanh chóng để tôi có thể có quy trình làm việc bình thường.

private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
  @Override
  public boolean getUseDeveloperSupport() {
    // return true here to load JS from the packager
    // BuildConfig.DEBUG for me was set to false which meant it
    // it was always trying to load the assets from assets folder.
    return true;
  }

  @Override
  protected String getJSMainModuleName() {
    return "index";
  }
};

Có lẽ sẽ phải hoàn nguyên thay đổi khi cố gắng thực hiện xây dựng sản xuất.


2

Tôi gặp vấn đề với McAfee trên cổng chặn mac 8081 của tôi, phải đổi nó thành 8082.

Đầu tiên chạy máy chủ gói của bạn:

react-native start --port 8082

Mở một thiết bị đầu cuối khác, khởi động ứng dụng Android như bình thường:

react-native run-android

Khi nó kết thúc, bây giờ hãy viết lại cổng tcp mà adb đường hầm:

adb reverse tcp:8081 tcp:8082

Xem danh sách các đường hầm tbp adb:

adb reverse --list

Bây giờ bạn sẽ thấy một thông điệp ấm lòng:

(reverse) tcp:8081 tcp:8082

Tới ứng dụng của bạn và tải lại, xong!

PS: Không thay đổi bất cứ điều gì trong cài đặt Dev của ứng dụng, nếu bạn đã thêm "localhost: 8082", chỉ cần xóa nó, để trống.

EDIT: Đối với tất cả các nạn nhân của McAfee ngoài kia, có giải pháp dễ dàng hơn nếu bạn có quyền truy cập root, chỉ cần tạm thời giết tiến trình McAfee trên cổng 8081 và không cần thay đổi cổng:

sudo launchctl remove com.mcafee.agent.macmn

2

Tôi nghĩ bạn không có sợi cài đặt hãy thử cài đặt nó với sô cô la hoặc một cái gì đó. Nó nên được cài đặt trước khi tạo dự án của bạn (lệnh init gốc tự nhiên).

Không cần tạo thư mục tài sản.

Trả lời nếu nó không hoạt động.

Chỉnh sửa: Trong phiên bản gần đây của Reac -igen, họ đã sửa nó. Nếu bạn muốn hoàn toàn tự do khỏi nút này, chỉ cần gỡ cài đặt nút (Để gỡ cài đặt hoàn toàn Loại bỏ hoàn toàn nút tham khảo liên kết này) và cài đặt lại nút, Reac -igen-cli sau đó tạo dự án mới của bạn.


2

đừng quên bật internet trong thiết bị giả lập, tôi đã khắc phục lỗi này, nó hoạt động hoàn hảo: V Tôi gặp lỗi này vì tôi tắt internet để kiểm tra NetInfo: D


2

Đây là một thông báo lỗi chung, bạn có thể đã gặp phải trong quá trình phát triển ứng dụng gốc. Vì vậy, trong hướng dẫn này, chúng tôi sẽ cung cấp giải pháp cho vấn đề này.

Mô tả sự cố: Không thể tải tập lệnh từ tài sản index.android.bundle trên windows Không thể tải tập lệnh từ tài sản index.android.bundle trên windows

Thực hiện theo các bước dưới đây để giải quyết vấn đề trên:

Bước 1: Tạo thư mục "tài sản" trong thư mục dự án của bạn Bây giờ tạo thư mục tài sản bên trong thư mục dự án đó là "MobileApp \ android \ app \ src \ main". Bạn có thể tự tạo thư mục tài sản:

<HOẶC>

bạn có thể tạo thư mục bằng cách sử dụng lệnh là tốt. Lệnh: mkdir android / app / src / main / nội dung

Bước 2: Chạy ứng dụng React Native của bạn Cho phép chạy lệnh bên dưới để chạy ứng dụng gốc phản ứng trong trình giả lập hoặc thiết bị vật lý.

Chuyển sang thư mục dự án. cd MobileApp

Chạy lệnh dưới đây giúp gói dự án ứng dụng Android của bạn.

gói phản ứng gốc - nền tảng android --dev false --entry-file index.js --bundle-output android / app / src / main / property / index.android.bundle --assets-Dest android / app / src / chính / độ phân giải

Chạy bước cuối cùng để chạy phản ứng ứng dụng gốc trong trình giả lập hoặc thiết bị vật lý. run-android run-android

<HOẶC>

Ngoài ra, bạn có thể kết hợp hai lệnh cuối cùng trong một, trong trường hợp này bạn chỉ phải thực thi lệnh một lần.

gói phản ứng gốc - nền tảng android --dev false --entry-file index.js --bundle-output android / app / src / main / property / index.android.bundle --assets-Dest android / app / src / main / res && Reac -igen run-android

<HOẶC>

Bạn có thể tự động hóa các bước trên bằng cách đặt chúng trong tập lệnh một phần của gói.json như thế này:

"Android-android": "gói phản ứng gốc - nền tảng android --dev false --entry-file index.js --bundle-output android / app / src / main / finance / index.android.bundle --assets -dest android / app / src / main / res && Reac -igen run-android "

Nếu mọi thứ được thiết lập chính xác, bạn sẽ sớm thấy ứng dụng mới của mình chạy trong trình giả lập Android.


2

Thực hiện theo điều này, làm việc cho tôi.

https://github.com/react-community/lottie-react-native/issues/269

Chuyển đến thư mục dự án của bạn và kiểm tra xem thư mục này có tồn tại android / app / src / main / nội dung i) Nếu nó tồn tại thì hãy xóa hai tệp viz index.android.bundle và index.android.bundle.meta ii) Nếu tài sản thư mục không Không tồn tại sau đó tạo thư mục tài sản ở đó.

Từ thư mục dự án gốc của bạn làm cd android && ./gradlew

Cuối cùng, điều hướng trở lại thư mục gốc và kiểm tra xem có một tệp mục nhập duy nhất được gọi là index.js i) Nếu chỉ có một tệp tức là index.js thì hãy chạy theo lệnh Reac -igen bundle --pl platform android --dev false - -entry-file index.js --bundle-output android / app / src / main / property / index.android.bundle --assets-Dest android / app / src / main / res

ii) Nếu có hai tệp tức là index.android.js và index.ios.js thì hãy chạy gói phản ứng gốc này - nền tảng android --dev false --entry-file index.android.js --bundle-output android /app/src/main/assets/index.android.bundle --assets-Dest android / app / src / main / res

Bây giờ chạy Reac -igen run-android


Nhận xét của bạn đã giúp tôi rất nhiều. Tôi không chắc tại sao tôi cần phải xóa hai tập tin bó. Nhưng hướng của bạn sẽ hoàn hảo! Cảm ơn bạn rất nhiều!
VK1

2

Tôi vừa gặp chính xác cùng một vấn đề và giải quyết nó. Vì vậy, hy vọng sẽ hữu ích.

Giả sử bạn đang truy cập gói ứng dụng phát hành (.apk)

  1. Kiểm tra xem thư mục tài sản của bạn có tồn tại không ?: \ Android \ app \ src \ main \ nội dung Nếu không, hãy tạo một thư mục.

  2. Sau khi thực hiện "Phát hành lắp ráp", hãy kiểm tra xem có bất cứ thứ gì trong thư mục đó không (\ android \ app \ src \ main \ nội dung) Nếu không, hãy tìm tệp bó js ( index.android.bundle ), trong đó có nhiều hơn một các đường dẫn sau:

    * a) \ android \ app \ build \ trung gian \ merged_assets \ phát hành \ out \ index.android.bundle

    b) \ android \ app \ build \ trung gian \ merged_assets \ release \ mergeReleaseAssets \ out \ index.android.bundle

    c) \ android \ app \ build \ trung gian \ nội dung \ phát hành \ index.android.bundle

    d) \ android \ app \ build \ created \ nội dung \ Reac \ release \ index.android.bundle *

Cách tốt hơn là sử dụng "Mọi thứ" để tìm kiếm tên tệp: index.android.bundle.

  1. Sau đó sao chép tệp này vào thư mục tài sản của bạn (\ android \ app \ src \ main \ nội dung \ index.android.bundle)

  2. Quay trở lại powershell hoặc bảng điều khiển lệnh, thực thi:

Reac -igen run-android --variant = phát hành

Nó nên hoạt động.

Chúc may mắn!


Cảm ơn rât nhiều! Chật vật trong ba ngày! Btw phản ứng tự nhiên 0,59 đã khắc phục vấn đề.
Annie


1

Hình ảnh

Tôi đang đối mặt với vấn đề này, rất nhiều tìm kiếm và tôi đã giải quyết vấn đề đó.

c:\ProjectFolder\ProjectName> react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

Hơn Run phản ứng bản địa:

c:\ProjectFolder\ProjectName>react-native run-android


1
Ảnh chụp màn hình là một chút không liên quan đến câu trả lời.
Tyler

1

Đối với tất cả các bạn, những người đang phát triển từ một ứng dụng tạo phản ứng và bị loại bỏ, và có vấn đề này development, đây là những gì làm việc cho tôi chỉ là một chi tiết nhỏ từ câu trả lời được chấp nhận

(trong thư mục dự án) mkdir android / app / src / main / nội dung

đây là phần thay đổi cos bạn đang phát triển loại bỏ --dev: falsephần:

gói phản ứng gốc - nền tảng android --entry-file index.js --bundle-output android / app / src / main / property / index.android.bundle --assets-Dest android / app / src / main / res

sau đó đóng tất cả các thiết bị đầu cuối, xóa thư mục xây dựng khỏi android / app / để đảm bảo bạn bắt đầu dọn dẹp để xây dựng ứng dụng của mình, mở một thiết bị đầu cuối mới và

(trong thư mục dự án) npm chạy android

sẽ nhắc bảng điều khiển packager (trong một thiết bị đầu cuối khác) và xây dựng thành công

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.