Nie można załadować skryptu z zasobów index.android.bundle w systemie Windows

357

Próbuję uruchomić swój pierwszy projekt React Native po raz pierwszy na moim urządzeniu (Android 4.2.2).

I dostaję:

nie można załadować skryptu z zasobów index.android.bundle

Polecenia, których użyłem:

  1. cd (project directory)
  2. react-native start
  3. react-native run-android
Goba
źródło
6
Przed wypróbowaniem odpowiedzi Jerry'ego najpierw sprawdź ANDROID_HOME w zmiennej środowiskowej i ścieżce-platformie-narzędziu.
Sagar Chavada
To błąd w najnowszej wersji. Musisz użyć poprzedniej wersji, używając init-native init Nazwa projektu --version = 0,55.4 Problem powinien zostać rozwiązany.
Sulung Nugroho,
ten sam błąd, ten sam kontekst, ale poprawka jest łatwa: poczekaj, aż serwer debugowania zmieni się z Loading dependency graph...na Loading dependency graph, donei naciśnij przycisk przeładowania w aplikacji.
Nino Filiu
Przyjęta odpowiedź to niezwykle niewygodny hack, który komplikuje proces kompilacji i bazę kodu. Tutaj są lepsze odpowiedzi.
Andrew Koster
Użyj mkdir ... /assets && react-native bundle --platform..NIE MOŻE całkowicie rozwiązać tego problemu, sprawdź to: stackoverflow.com/a/55511803/10139109
Ian Zhong

Odpowiedzi:

947

Ten sam problem napotkałem podczas korzystania z samouczka React Native (programowanie w systemie Linux i kierowanie na system Android).

Ten problem pomógł mi rozwiązać problem w następujących krokach.

  1. (w katalogu projektu) 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

Można zautomatyzować powyższe kroki, umieszczając je w scriptsramach package.jsontak:

"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"

Następnie możesz po prostu wykonać za npm run android-linuxpomocą wiersza polecenia za każdym razem.

Nocnik
źródło
15
co jeśli chcemy zmodyfikować plik index.android.js? za każdym razem w terminalu musimy wstawić poleceniereact-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
utknie za Loading dependency graph...każdym razem, gdy uruchomię go ponownie z terminala i zajmuje to zbyt wiele czasu. Do Twojej wiadomości używam Ubuntu 14.04
Maulik
12
React rodzime nowsze wersje nie zawiera index.android.js, dlatego proszę użyć App.js z poleceniem. :) Dzięki
Chinthaka Dinadasa
11
@ChinthakaDinadasa w moim przypadku, to index.jsnie jestApp.js
Felix
11
Ten facet potrzebuje posągu! Mam na myśli, że naprawdę działał nie tylko na Linuksie, ale także na Windowsie 10
Reborn
126

Jeśli uruchamiasz aplikację na urządzeniu fizycznym i pojawia się ten błąd

unable to load script from assets index.android.bundle

spróbuj uruchomić polecenie:

adb reverse tcp:8081 tcp:8081

To działało dla mnie ...

Nidhi Shah
źródło
To naprawiło mój problem! Dzięki!
Pablo
7
Pracował dla mnie. Dla tych, którzy nie mają narzędzi platformy Android na ścieżce terminala w systemie Windows, plik wykonywalny adb znajduje się w `C: \ Users \ YourUser \ AppData \ Local \ Android \ sdk \ platform-tools`
Mikepote
2
Myślę, że to powinna być poprawna odpowiedź, druga wydaje się jak hack.
Cristian Gomez
2
To nie działało dla mnie (na macOS)
szx
To rozwiązało problem dla mnie (Windows, uruchamianie aplikacji na urządzeniu fizycznym). Jest to jedna z sugerowanych poprawek w czerwonym polu błędu.
Tur1ng
101

Spędziłem godziny próbując rozwiązać ten problem. Mój problem nie dotyczył systemu Windows, ale dotyczy Androida.

Dostęp do serwera programistycznego działał lokalnie i w przeglądarce emulatora. Jedyne, co nie działało, to dostęp do serwera programistycznego w aplikacji.

Począwszy od systemu Android 9.0 (poziom API 28), obsługa tekstu jawnego jest domyślnie wyłączona.

AndroidManifest.xml

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

Zobacz więcej informacji: https://stackoverflow.com/a/50834600/1713216

neurosnap
źródło
11
Dziękuję Ci. To był mój problem po aktualizacji targetSdkVersiondo 28.
bencergazda
To jest poprawna odpowiedź. Naprawiono problem z komunikacją sieciową.
Andrew Koster
Jest to rozwiązanie stosowane w React Native v0.59.2 .
Tur1ng
Dzięki za zgłoszenie tego - całkowicie uniemożliwiało ładowanie mojej aplikacji RN. Rozczarowujące, że nie było lepszego komunikatu o błędzie wokół tego: /
greg7gkb
2
Pracuje! Gdybym cię zobaczył osobiście, dałbym ci medal (-:
Yaron Levi,
61

Używanie npm wersji 4.3.0 Reaktywuj natywną wersję cli 2.01 Reaktywuj natywną wersję 0.49.5

W katalogu projektu

  • 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

Nazwa pliku zmieniła się z index.android.js na index.js

Darshan Pania
źródło
3
Trochę smutne, że FB wydaje nową wersję i zamiast naprawiać ten błąd - który wyraźnie uderza w masę ludzi - łamią przyjęte obejście!
Tom
@IgorGanapolsky Upewnij się, że masz plik index.bundle w folderze zasobów
Darshan Pania
@DarshanPania Do czego służy ten plik?
IgorGanapolsky
3
@IgorGanapolsky Ten plik JS jest punktem wejścia do Twojej aplikacji. Od RN 0.49 jest tylko jeden plik index.jszamiast index.android.jslubindex.ios.js
Darshan Pania
1
dla systemu 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
Taohidul Islam
42

Ten sam problem miałem z prawdziwym urządzeniem z Androidem.

Rozwiązanie: Na podstawie tej odpowiedzi Niltoid

  1. Znajdź swój lokalny adres IP
  2. Otwórz aplikację i potrząśnij urządzeniem z Androidem
  3. Przejdź do Ustawienia dewelopera i> Serwer debugowania ...
  4. Wklej swój adres IP i port; XXXX: 8088 ”(gdzie X to Twój lokalny adres IP)

dla użytkowników komputerów Mac: otwórz preferencje sieci, tutaj otrzymasz lokalny adres IP.

Milon
źródło
Działa dla mnie (y)
MAhipal Singh
22

Jeśli używasz systemu Windows, uruchom polecenia w następujący sposób lub jeśli pojawi się błąd „Nie można znaleźć pliku pozycji 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

Maszyna Led
źródło
19

Aby rozwiązać ten problem, postępuj zgodnie z instrukcjami wymienionymi na oficjalnej stronie . Ten problem występuje na prawdziwym urządzeniu, ponieważ pakiet JS znajduje się w systemie programistycznym, a aplikacja na Twoim prawdziwym urządzeniu nie wie o jego lokalizacji.

mthakuri
źródło
Ten problem występował podczas uruchamiania bezpośrednio ze studia Android. za pomocą react-native run-androidnaprawiono
yairsz
7
Twój link już nie działa, powinieneś odwoływać się do kluczowych pomocnych części w przyszłości, aby utrzymać informacje przy życiu po śmierci źródła.
Zac Grierson
Jak uruchomić to na prawdziwym urządzeniu ?
IgorGanapolsky
1
@IgorGanapolsky mam ten sam problem i naprawiłem go z oficjalną dokumentacją, możesz łatwo sprawdzić swoje środowisko facebook.github.io/react-native/docs/running-on-device.html Nie mogę załadować porj ze studia Android (i Android folder), ale mógłbym to zrobić z folderem głównym projektu i terminalu.
Ivan Titkov
15

Miałem ten sam problem w Macu, po spędzeniu 2 dni w końcu udało mi się dostać działa.

Odkąd Emulator cellular data was turned offdostawałem unable to load script from assets index.android.bundle make sure your bundle is running.

Upewnij się, że Emulator cellular data is turned onwykonując ten pakiet serwer był w stanie spakować index.android.js. Mam nadzieję, że pomoże to komuś, kto jest w fazie rozwoju.

Srinivas
źródło
Co masz Emulator cellular data is turned on? Gdzie to jest? Wirtualne urządzenie? Prawdziwe urządzenie?
zielony
Emulator oznacza urządzenie wirtualne, które pochodzi ze studia Android.
Srinivas
13

Ten sam problem mam już od kilku miesięcy. Początkowo korzystałem z rozwiązania @ Jerry'ego, jednak było to fałszywe rozwiązanie, ponieważ nie rozwiązało to w pełni problemu. Zamiast tego potraktował każdą kompilację jako kompilację produkcyjną, co oznacza, że ​​każda niewielka zmiana dokonana w aplikacji oznaczałaby konieczność przebudowania całej aplikacji.

Chociaż jest to rozwiązanie tymczasowe, działa okropnie w dłuższej perspektywie, ponieważ nie jesteś już w stanie korzystać z niesamowitych narzędzi programistycznych React Native, takich jak ponowne ładowanie na gorąco itp.

Prawidłowe rozwiązanie to pokazane:

W swoim MainApplication.javapliku zastąp następujące elementy:

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

z

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

ponieważ z jakiegoś powodu BuildConfig.DEBUGzawsze zwracał wartość false i powodował powstanie pliku pakietu w katalogu zasobów.

Ręczne ustawienie tej wartości powoduje wymuszenie przez aplikację korzystania z programu pakującego. Nie zadziała to w produkcji, więc zmień go na false lub wartość domyślną.

Nie zapomnij również uruchomić

$ adb reverse tcp:8081 tcp:8081
Stephen Jesse
źródło
1
to jest prawdziwe rozwiązanie. dzięki!
keyserfaty,
1
Cholera, to jest właściwe rozwiązanie. Przyjęta odpowiedź nie działa w przypadku ponownego ładowania na gorąco i nie jest w żaden sposób uzasadnionym rozwiązaniem problemu.
Ganesh Datta
11

1 Przejdź do katalogu projektu i sprawdź, czy ten folder istnieje android/app/src/main/assets

  1. Jeśli istnieje, usuń dwa pliki mianowicie index.android.bundleiindex.android.bundle.meta
  2. Jeśli zasoby folderu nie istnieją, utwórz tam katalog zasobów.

2. Z katalogu głównego projektu wykonaj

cd android && ./gradlew clean

3. Na koniec przejdź z powrotem do katalogu głównego i sprawdź, czy istnieje jeden plik pozycji o nazwieindex.js

  • Jeśli jest tylko jeden plik, np. Index.js, uruchom następującą komendę 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

  • Jeśli są dwa pliki, tj. Index.android.js i index.ios.js, uruchom to 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. Teraz biegnij react-native run-android
mukeshmandiwal
źródło
po wypróbowaniu prawie wszystkich tych scenariuszy ... było to jedyne rozwiązanie, które działało dla mnie. Dziękuję Ci!!!!
MizAkita
Działa to dla mnie po napotkaniu tego błędu zgodnie z przewodnikiem wprowadzającym na Ubuntu 18.04. Dzięki!
rastating
To działa dla mnie w Mac os Catalina, dziękuję
Hitesh
9

System operacyjny: Windows

Inny sposób rozwiązania tego problemu po wypróbowaniu dwóch powyższych metod
(ponieważ zainstalowałem SDK nie w DOMYŚLNEJ LOKALIZACJI, takiej jak C: \ users \ "nazwa_użytkownika" \ appdata \ local \ sdk )

Jeśli zauważyłeś, że wiersz poleceń został ogłoszony: „adb” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne ... ”

Tak to się kończy:
Przykłady: Zainstalowałem SDK w D: \ Android \ sdk
Więc wstawię ścieżkę do Zmiennych Systemowych jeszcze 2 wiersze:

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

(Jeśli nie wiesz, jak edytować zmienne systemowe ścieżki, oto temat: /android/38321/what-do-i-type-in-path-variable-for-adb- server-to-start-from-cmd / 38324 )

Następnie ponownie uruchamiam cmd: react-native run-android

To zadziałało dla mnie.

Thien Nhan Nguyen
źródło
nawet jeśli nie jest tak naprawdę związany - jest to jeden z bardzo częstych problemów i działa tak, jak opisał Thien
Pixelartist
8

W moim przypadku usunąłem poniżej linii z MainApplication.java. (Który wcześniej został przeze mnie błędnie dodany.) : -

import com.facebook.react.BuildConfig;

Następnie wyczyść projekt i naciśnij klawisz Command

Reaktywny natywny run-android

Poonam
źródło
Dzięki, to mi też pomaga.
Anil Ravsaheb Ghodake
6

Dla IOS:

W terminalu:

cd ios

Usuń folder kompilacji za pomocą: rm -r build

Uruchomić ponownie: react-native run-ios

Alternatywnie, można otworzyć Finder przejdź do YOUR_PROJECT / iOS i usunąć ten build folderu .

Następnie uruchom ponownie: react-native run-ios

Dla ANDROIDA:

W terminalu:

cd android/app

Usuń folder kompilacji za pomocą: rm -r build

Uruchomić ponownie: react-native run-android

Alternatywnie, można otworzyć Finder przejdź do YOUR_PROJECT / android / app i usunąć ten build folderu .

Następnie uruchom ponownie: react-native run-android

Gurbela
źródło
2
Działa na Androida! czyste i łatwe!
llioor
Usuwanie android/app/binfolderu w systemie Windows również działało. Zbudowałem ten projekt bezpośrednio z Android Studio, zamiast uruchamiać react-native run-android, i wygląda na to, że zbudował coś złego, co musiałem usunąć ręcznie.
Lucas Bustamante,
5

W przypadku tego problemu po prostu go rozwiązuję, uruchamiając:

react-native start

następnie

adb reverse tcp:8081 tcp:8081

w wierszu poleceń. A potem mogę uruchomić:

react-native run-android

Więc nie będę marnować czasu na bieganie:

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

każdego razu.

Chheng Chansopheaktra
źródło
5

Napotkałem również ten problem, ponieważ kiedy uruchamiam projekty na emulatorze, działa dobrze, ale na prawdziwym urządzeniu daje ten błąd. Rozwiązuję ten problem, stosując następujące rozwiązanie

Pierwszy krok: Najpierw otwórz cmd i przejdź do folderu SDK manager Platform-tools

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

Drugi krok : teraz uruchom to polecenie:

adb devices

po tym poleceniu sprawdź urządzenie na liście w wierszu polecenia

Trzeci krok : teraz uruchom to

adb reverse tcp:8081 tcp:8081

Teraz konfiguracja jest zakończona

Czwarty krok : przejdź do katalogu projektu i uruchom to polecenie

react-native run-android
Mudassir Khan
źródło
4

Ubuntu

po raz pierwszy stworzyłem nową aplikację za pomocą react-native init project-name. Mam ten sam błąd. więc wykonuję następujące kroki, aby rozwiązać ten problem w moim przypadku.

  1. Najpierw biegnij sudo chown user-name-of-pc /dev/kvmw moim przypadku.
  2. Podczas debugowania z telefonu z Androidem wybierz Use USB to Transfer photos (PTP).

  3. Utwórz folder assetsw nazwie projektu / android / app / src / main

  4. upewnij się, że index.jsjesteś dostępny w root katalogu projektu, a następnie uruchom poniższe polecenie z konsoli po cd project-namekatalogu.

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

lub dla index.android.js wtedy

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. uruchom polecenie ./studio.shw android-studio/binkatalogu. Otworzy się Android Studio.

  2. uruchom polecenie react-native run-android.

wprowadź opis zdjęcia tutaj

Harat
źródło
4

Upewnij się, że konstruktor metra działa, aby urządzenie fizyczne i serwer zostały zsynchronizowane

Najpierw uruchom to polecenie, aby uruchomić konstruktora metra

npm start

Następnie możesz rozpocząć kompilację w reakcji rodzimej

Reaktywny natywny run-android

Tym razem nie powinno ich zabraknąć. Jeśli chcesz, aby Twój kod był aktywny, załaduj go ponownie po zmianie. Potrząśnij urządzeniem, a następnie stuknij opcję Włącz przeładowanie na żywo

dytra
źródło
3

Upewnij się, że dodałeś / path / to / sdk / platform-tools do swojej zmiennej path.

Po uruchomieniu natywnego run-androida uruchomione zostanie polecenie adb reverse tcp: <device-port> tcp: <local-port>, aby przekazać żądanie z urządzenia do serwera działającego lokalnie na komputerze. Zobaczysz coś takiego, jeśli adb nie zostanie znaleziony.

/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 }
maximus
źródło
powinno to być aż do większości upvoted odpowiedzi, jak powinno być jedną z pierwszych rzeczy do sprawdzenia
eis
3

Może to być spowodowane niepołączonymi zasobami w bazie kodu projektu React Native, na przykład podczas zmiany nazwy identyfikatora aplikacji / pakietu lub dodawania zewnętrznego pakietu bez odpowiedniego połączenia.

Po prostu spróbuj w katalogu głównym projektu:

react-native link

react-native run-android
Lindoélio Lázaro
źródło
2

Jeśli podczas uruchamiania react-native run-androidpolecenia drugim wierszem śledzenia jest

JS server not recognized, continuing with build...

oznacza to, że nie można uruchomić programu pakującego dla aplikacji, a aplikacja nie załaduje się bez dodatkowych kroków. Pamiętaj, że koniec śledzenia nadal informuje o sukcesie:

BUILD SUCCESSFUL

Problemem jest prawdopodobnie konflikt portów (w moim przypadku była to domyślna witryna IIS, o której całkowicie zapomniałem). Innym przejawem problemu może być brak otwarcia http://localhost:8081/debugger-uiadresu URL w Chrome.

Po rozwiązaniu konfliktu portów nastąpi raport śledzenia

Starting JS server...

wtedy otworzy się dodatkowe okno Węzła ( node ...cli.js start) i aplikacja załaduje się / przeładuje pomyślnie.

Następnie powinieneś być w stanie otworzyć konsolę debugowania w Chrome za pomocą http://localhost:8081/debugger-ui.

mp31415
źródło
2

Miałem ten sam problem, nawet gdy działałem na symulatorze. Zrobiłem szybkie obejście, aby mieć normalny przebieg pracy programisty.

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";
  }
};

Prawdopodobnie konieczne będzie cofnięcie zmiany podczas próby wykonania kompilacji produkcyjnej.

nimgrg
źródło
2

Miałem problem z McAfee na moim porcie blokującym Mac 8081, musiałem go zmienić na 8082.

Najpierw uruchom serwer pakietów:

react-native start --port 8082

Otwórz inny terminal, uruchom aplikację na Androida jak zwykle:

react-native run-android

Po zakończeniu przepisz port TCP, który adbuje tunele:

adb reverse tcp:8081 tcp:8082

Zobacz listę tuneli adb tcp:

adb reverse --list

Powinieneś teraz zobaczyć ciepłą wiadomość:

(reverse) tcp:8081 tcp:8082

Przejdź do aplikacji i załaduj ponownie, gotowe!

PS: Nie zmieniaj niczego w ustawieniach Dev aplikacji, jeśli dodałeś „localhost: 8082”, po prostu go usuń, pozostaw puste.

EDYCJA: Dla wszystkich ofiar McAfee istnieje łatwiejsze rozwiązanie, jeśli masz dostęp do konta root, po prostu tymczasowo zabij proces McAfee siedzący na porcie 8081 i wcale nie musisz zmieniać portu:

sudo launchctl remove com.mcafee.agent.macmn
Indrek Ruubel
źródło
2

Myślę, że nie masz zainstalowanej przędzy, spróbuj zainstalować ją z czekoladą lub czymś podobnym. Powinien zostać zainstalowany przed utworzeniem projektu (komenda init-native-init).

Nie ma potrzeby tworzenia katalogu zasobów.

Odpowiedz, jeśli to nie działa.

Edycja: W najnowszej wersji React-Native naprawili to. Jeśli chcesz całkowicie uwolnić się od tego, po prostu odinstaluj węzeł (w celu pełnej dezinstalacji Całkowicie usuń węzeł zapoznaj się z tym linkiem) i zainstaluj ponownie węzeł, React-native-cli, a następnie utwórz nowy projekt.

Sudhanva Patil
źródło
2

nie zapomnij włączyć internetu na emulatorze, ponownie umieściłem ten błąd, działa idealnie: V Dostaję ten błąd, ponieważ wyłączam internet, aby przetestować NetInfo: D

Nguyễn Phúc
źródło
2

Jest to ogólny komunikat o błędzie, który mógł napotkać podczas reagowania na tworzenie aplikacji natywnych. W tym samouczku przedstawimy rozwiązanie tego problemu.

Opis problemu: Nie można załadować skryptu z zasobów index.android.bundle w systemie Windows Nie można załadować skryptu z zasobów index.android.bundle w systemie Windows

Wykonaj poniższe kroki, aby rozwiązać powyższy problem:

Krok 1: Utwórz folder „zasoby” w katalogu projektu Teraz utwórz folder zasobów w katalogu projektu, który brzmi „MobileApp \ android \ app \ src \ main”. Możesz ręcznie utworzyć folder zasobów:

<LUB>

możesz utworzyć folder również za pomocą polecenia. Polecenie: mkdir android / app / src / main / asset

Krok 2: Uruchamianie aplikacji React Native Uruchommy poniższą komendę, aby uruchomić aplikację React Native w emulatorze lub urządzeniu fizycznym.

Przejdź do katalogu projektu. cd MobileApp

Uruchom poniższe polecenie, które pomaga spakować projekt aplikacji na Androida.

pakiet React-Native - platforma Android - dv false --entry-file index.js - pakiet wyjścia Android / app / src / main / resources / index.android.bundle --assets-dest android / app / src / main / res

Uruchom ostatni krok, aby uruchomić zareagować natywną aplikację w emulatorze lub urządzeniu fizycznym. Reaktywny natywny run-android

<LUB>

Możesz także połączyć dwa ostatnie polecenia w jednym. W takim przypadku musisz wykonać polecenie tylko raz.

pakiet React-Native - platforma Android - dv false --entry-file index.js - pakiet wyjścia Android / app / src / main / resources / index.android.bundle --assets-dest android / app / src / main / res && reag-native run-android

<LUB>

Możesz zautomatyzować powyższe kroki, umieszczając je w skryptach w części package.json w następujący sposób:

„Android-Android”: „Reaktywny natywny pakiet - platforma Android - Dev false --entry-file index.js - pakiet-wyjście dla Androida / app / src / main / resources / index.android.bundle --assets -dest android / app / src / main / res && reag-native run-android "

Jeśli wszystko jest skonfigurowane poprawnie, wkrótce powinna pojawić się nowa aplikacja w emulatorze Androida.

sumit kumar pradhan
źródło
2

Śledź to, pracował dla mnie.

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

Przejdź do katalogu projektu i sprawdź, czy ten folder istnieje android / app / src / main / resources i) Jeśli istnieje, usuń dwa pliki, tj. Index.android.bundle i index.android.bundle.meta ii) Jeśli zasoby folderu nie istnieje, a następnie utwórz tam katalog zasobów.

Z katalogu głównego projektu wykonaj cd android && ./gradlew clean

Na koniec przejdź z powrotem do katalogu głównego i sprawdź, czy istnieje jeden plik wejściowy o nazwie index.js i) Jeśli istnieje tylko jeden plik, np. Index.js, uruchom następującą komendę reaguj na pakiet natywny - platforma Android - dev fałsz - -entry-file index.js --bundle-output android / app / src / main / resources / index.android.bundle --assets-dest android / app / src / main / res

ii) Jeśli istnieją dwa pliki, tj. index.android.js i index.ios.js, uruchom ten pakiet reagujący-natywny - platforma Android - dev fałszywe - plik-indeksu index.android.js - paczka z Androidem /app/src/main/assets/index.android.bundle --assets-dest android / app / src / main / res

Teraz uruchom reakcyjny natywny run-android

Sameer
źródło
Twój komentarz bardzo mi pomógł. Nie jestem pewien, dlaczego musiałem usunąć dwa pliki pakietu. Ale twoje wskazówki idealnie! Dziękuję bardzo!
VK1,
2

Właśnie spotkałem dokładnie ten sam problem i go rozwiązałem. Więc mam nadzieję, że będę pomocny.

Załóżmy, że tworzysz pakiet aplikacji wydania (.apk)

  1. Sprawdź, czy istnieje folder zasobów ?: \ android \ app \ src \ main \ asset Jeśli nie, utwórz go.

  2. Po wykonaniu „Assemble Release” sprawdź, czy w tym folderze jest coś (\ android \ app \ src \ main \ asset ). Jeśli nie, znajdź plik pakietu js ( index.android.bundle ). ), który powinien znajdować się w więcej niż jednym następujące ścieżki:

    * a) \ android \ app \ build \ intermediates \ scaled_assets \ release \ out \ index.android.bundle

    b) \ android \ app \ build \ intermediates \ scaled_assets \ release \ mergeReleaseAssets \ out \ index.android.bundle

    c) \ android \ app \ build \ intermediates \ resources \ release \ index.android.bundle

    d) \ android \ aplikacja \ kompilacja \ wygenerowana \ aktywa \ reaguj \ wydanie \ indeks.android.bundle *

Lepszym sposobem jest użycie „Wszystko” do przeszukiwania nazwy pliku: index.android.bundle.

  1. Następnie skopiuj ten plik do folderu zasobów (\ android \ app \ src \ main \ resources \ index.android.bundle)

  2. Wróć do PowerShell lub konsoli poleceń, wykonaj:

reaguj-rodzimy run-android --variant = release

To powinno działać.

Powodzenia!

bhw1899
źródło
Dziękuję Ci bardzo! Walczyłem przez trzy dni! Btw zareagować natywny 0,59 naprawił problem.
Annie,
1

Wizerunek

Mam do czynienia z tym problemem, dużo wyszukiwania i rozwiązałem ten problem.

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

Następnie uruchom reakcję natywną:

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

Rohit Bansal
źródło
1
Zrzut ekranu jest trochę nieistotny dla odpowiedzi.
Tyler,
1

Dla was wszystkich, którzy rozwijacie się z aplikacji „reaguj na tworzenie” i wysunęli się, i mają ten problem development, to działało dla mnie tylko mały szczegół z zaakceptowanej odpowiedzi

(w katalogu projektu) mkdir android / app / src / main / asset

nadchodzi część, która zmienia się, ponieważ jesteś w fazie rozwoju, pozbądź się tej --dev: falseczęści:

Reaktywny pakiet - platforma Android - plik indeksu.js - pakiet wyjściowy android / app / src / main / asset / index.android.bundle --assets-dest android / app / src / main / res

po tym zamknij wszystkie terminale, usuń folder kompilacji z Androida / app /, aby upewnić się, że zaczynasz od nowa, aby zbudować aplikację, otwórz nowy terminal i

(w katalogu projektu) npm uruchom Androida

wyświetli monit konsoli konsolowej (w innym terminalu) i zakończy się sukcesem

RamiroIsBack
źródło