Невозможно загрузить скрипт из индекса активов.андроид.пакет на Windows

Я пытаюсь запустить свой первый собственный проект React впервые на своем устройстве (Android 4.2.2).

а я:

невозможно загрузить скрипт из индекса активов.андроид.бандл

команды, которые я использовал:

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

30 ответов


я столкнулся с той же проблемой, следуя React Native учебник (разработка на Linux и таргетинг на Android).

этой вопрос помог мне решить проблему в следующих шагах.

  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

вы можете автоматизировать вышеупомянутые шаги, поместив их в scripts часть package.json как это:

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

затем вы можете просто выполнить npm run android-linux из командной строки каждый раз.


Если вы запускаете приложение на физическом устройстве и получаете эту ошибку

unable to load script from assets index.android.bundle

попробуйте выполнить команду:

adb reverse tcp:8081 tcp:8081

это работает для меня...


использование npm версии 4.3.0 react-native-cli версии 2.01 react-native версии 0.49.5

В каталоге проекта,

  • 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

имя файла изменилось с .андроид.js to .js


Я столкнулся с той же проблемой с реальным устройством android.

решение: на основании этого ответ по Niltoid

  1. найдите свой локальный IP
  2. Откройте приложение и встряхните Android-устройство
  3. Go Dev настройки и > Debug Server...
  4. вставьте свой IP и порт; X. X. X. X: 8088" (где X-ваш локальный IP)

для пользователя Mac: откройте Настройки сети, здесь вы получите свой локальный IP.


Если вы используете Windows, выполните команды следующим образом, или если вы получаете сообщение об ошибке "не удается найти запись индексного файла.андроид.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


вы можете следовать инструкциям, упомянутым на официальная страница исправить эту проблему. Эта проблема возникает на реальное устройство потому что пакет JS расположен в вашей системе разработки, и приложение внутри вашего реального устройства не знает о его местоположении.


была такая же проблема в mac, проведя 2 дня, я, наконец, смог получить работу.

С Emulator cellular data was turned off, Я получаю unable to load script from assets index.android.bundle make sure your bundle is running.

убедитесь, что ваш Emulator cellular data is turned on выполнив этот пакет, сервер смог собрать index.android.js. Надеюсь, это поможет тому, кто находится в стадии разработки.


ОС: Windows

другой способ решить эту проблему после попытки двух методов выше
(потому что я установил SDK не в местоположении по умолчанию, как C:\users\ "имя_пользователя" \appdata\local\sdk)

Если вы заметили, что командная строка объявила: "'adb' не распознается как внутренняя или внешняя команда..."

Так вот как я справляюсь:
Примеры: я установил SDK в D:\Android\sdk
Поэтому я вставлю path в системные переменные Больше 2 строк:

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

(Если вы не знаете, как редактировать системные переменные пути, вот тема: https://android.stackexchange.com/questions/38321/what-do-i-type-in-path-variable-for-adb-server-to-start-from-cmd/38324)

затем я снова запускаю cmd:react-native run-android

это сработало для меня.


у меня была такая же проблема в течение нескольких месяцев теперь. Первоначально я использовал решение @Jerry, однако это было ложное разрешение, поскольку оно не полностью исправило проблему. Вместо этого он взял каждую сборку как производственную сборку, что означает, что любое небольшое изменение, внесенное в приложение, будет означать, что необходимо перестроить все приложение.

хотя это временное решение, оно работает ужасно в долгосрочной перспективе, поскольку вы больше не можете воспользоваться удивительным React Native инструменты разработки как горячий перезаряжать etc.

правильное решение показано ниже:

в своем MainApplication.java файл, заменить следующим:

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

С

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

как почему-то BuildConfig.DEBUG всегда возвращается false и приводит к файлу пакета в каталоге активов.

вручную установив значение true, вы заставляете приложение использовать упаковщик. Это не будет работать в производстве, поэтому обязательно измените его на false или по умолчанию значение.

не забудьте также запустить

$ adb reverse tcp:8081 tcp:8081

убедитесь, что вы добавили /path/to/sdk/platform-tools в переменную path.

при запуске react-native run-android он запускает команду adb reverse tcp: tcp: для пересылки запроса с вашего устройства на сервер, работающий локально на вашем компьютере. Вы увидите что-то подобное, если 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 }

У меня была такая же проблема, даже при работе на тренажере. Я сделал быстрый обходной путь, чтобы у меня был нормальный рабочий процесс dev.

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

вероятно, придется отменить изменение при попытке выполнить производственную сборку.


это может быть вызвано несвязанными активами в вашей собственной базе кода проекта React, например, когда вы переименовываете свое приложение проекта/идентификатор пакета или добавляете внешний пакет без ссылки на него должным образом, например.

просто попробуйте в корневом каталоге проекта:

react-native link

react-native run-android

на IOS:

в терминала:

cd ios

удалить папку build с: rm -r build

запустить снова: react-native run-ios

кроме того, вы можете открыть Finder, перейдите к YOUR_PROJECT / ios и удалить на построить папку.

затем запустите снова:react-native run-ios

для ANDROID:

в терминала:

cd android/app

удалить папку build с: rm -r build

запустить снова: react-native run-android

кроме того, вы можете открыть Finder, перейдите к YOUR_PROJECT/android / app и удалить на построить папку.

затем запустите снова:react-native run-android


Ubuntu

первый раз, я создал новое приложение с react-native init project-name. Я получил ту же ошибку. поэтому я делаю следующие шаги, чтобы решить эту проблему в моем случае.

  1. во-первых работать sudo chown user-name-of-pc /dev/kvm в моем случае.
  2. во время отладки с вашего телефона Android, выберите Use USB to Transfer photos (PTP).

  3. Создать Папку assets в project-name/android/app/src / main

  4. убедится index.js быть доступны в вашем проект root каталог, а затем выполните команду ниже из консоли после .

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 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. выполнить команду ./studio.sh на выполнить react-native run-android.

enter image description here


если при запуске react-native run-android команда вторая строка трассировки -

JS server not recognized, continuing with build...

это означает, что packager для приложения не может быть запущен, и приложение не сможет загрузить без некоторых дополнительных шагов. Обратите внимание, что конец трассировки по-прежнему сообщает об успехе:

BUILD SUCCESSFUL

проблема, вероятно, в каком-то конфликте портов (в моем случае это был сайт IIS по умолчанию, о котором я полностью забыл). Еще одним проявлением проблемы будет неспособность открыть http://localhost:8081/debugger-ui URL в Chrome.

как только конфликт портов будет разрешен, трассировка сообщит

Starting JS server...

затем откроется дополнительное окно узла (node ...cli.js start), и приложение будет загружаться / перезагружаться успешно.

после этого вы сможете открыть консоль отладки в Chrome с помощью http://localhost:8081/debugger-ui.


для этой проблемы я просто решаю ее, запустив:

react-native start

затем

adb reverse tcp:8081 tcp:8081

в командной строке. И тогда я могу бежать:

react-native run-android

поэтому я не буду тратить свое время запуска:

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

каждый раз.


у меня была проблема с McAfee на моем mac, блокирующем порт 8081, пришлось изменить его на 8082.

сначала запустите сервер пакетов:

react-native start --port 8082

откройте другой терминал, запустите приложение android, как обычно:

react-native run-android

как только он закончит, теперь перепишите tcp-порт, который ADB туннелирует:

adb reverse tcp:8081 tcp:8082

см. список туннелей ADB tcp:

adb reverse --list

теперь вы должны увидеть трогательное сообщение:

(reverse) tcp:8081 tcp:8082

перейдите в приложение и перезагрузите, готово!

PS:ничего не меняйте в настройках приложения Dev, если вы добавили "localhost: 8082", просто удалите его, оставьте пустым.

изменить: Для всех жертв McAfee там есть более простое решение, если у вас есть корневой доступ, просто временно убейте процесс McAfee, сидящий на порту 8081, и нет необходимости менять порт вообще:

sudo launchctl remove com.mcafee.agent.macmn

Я думаю, что у вас нет пряжа установлен попробуйте установить его с chocolatey или что-то еще. Он должен быть установлен перед созданием вашего проекта (Команда react-native init).

нет необходимости создавать каталог активов.

ответ, если он не работает.

изменить: В последней версии react-native они исправили это. Если вы хотите полную свободу от этого просто удалить узел (для полной деинсталляции полностью удалить узел обратитесь к этой ссылке) и переустановите узел, react-native-cli затем создайте свой новый проект.


Я также столкнулся с этой проблемой, потому что когда я запускаю проекты на эмуляторе, он работает нормально, но на реальном устройстве он дает эту ошибку.Поэтому я решаю эту проблему следующим решением

1-й шаг: прежде всего откройте cmd и перейдите в папку SDK manager Platform-tools т. е.компакт-диск C:Development\Android\Sdk\Platform-tools

2-й шаг:теперь выполните эту команду : устройства adb

после этой команды проверьте устройство, указанное в команда propmt

3-й шаг:Теперь запустите этот adb обратный tcp: 8081 tcp: 8081

теперь ваша настройка выполняется

4-й шаг: перейдите в каталог проекта и запустите эту команду

react-native run-android


когда я обновляю react-native до 0.49.5, эта проблема появляется, и когда я следовал этому нарушение изменений и устаревания

Он исчез.


Image

я сталкиваюсь с этой проблемой, много поиска, и я решил эту проблему.

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

чем запустить react native:

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


Не забудьте включить интернет на устройстве эмулятор , Я resovled эта ошибка, она работает идеально :V Я получаю эту ошибку, потому что отключаю интернет для тестирования NetInfo: D


для всех вас, ребята, которые развиваются из create-react-native-app и выброшены, и имеют эту проблему в development, это работало для меня всего лишь небольшая деталь из принятого ответа

(в каталоге проекта) mkdir android/app/src/main/assets

вот часть, которая меняется, потому что вы находитесь в разработке избавиться от --dev: false детали:

react-native bundle --платформа android --файл ввода индекс.Яш -- пакет-выход android / app/src/main/активы / индекс.андроид.bundle --assets-dest android / app/src/main / res

после этого закройте все терминалы, удалите папку сборки из android / app/, чтобы убедиться, что вы начинаете чистить, чтобы создать приложение, откройте новый терминал и

(в каталоге проекта) npm запустить android

запросит консоль packager (в другом терминале) и успешно построит


1 Перейдите в каталог проекта и проверьте, существует ли эта папка android/app/src/main/assets

  1. если он существует, то удалить два файла, а именно index.android.bundle и index.android.bundle.meta
  2. если ресурсы папки не существуют, создайте каталог ресурсов там.

2.Из корневого каталога проекта do

cd android && ./gradlew clean

3.Наконец, перейдите обратно в корневой каталог и проверьте, есть ли один файл с именемindex.js

  • если есть только один файл, то есть индекс.JS затем выполните следующую команду 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

  • если есть два файла i.e индекс.андроид.js и индекс.усвн.js затем запустите это 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. теперь бегите react-native run-android

эта проблема также может быть вызвана отключением сотовых данных устройства / эмулятора. Убедитесь, что вы это проверили.


для этой ошибки: "невозможно загрузить скрипт из индекса активов.андроид.bundle'"

1). проверьте папку "активы" по адресу : mkdir android\app\src\main\assets

если папка недоступна, создайте папку с именем "assets" вручную. и выполните команду Curl в терминале.

2). Команда скручиваемость: скручиваемость "http://localhost:8081/index.андроид.бандл?платформа=андроид" - o " android / app/src/main/assets / index.андроид.бандл"

Он будет создать индекс".андроид.bundle " файл в папке assets автоматически и решил проблему.

3). react-native run-android


откалывание очевидного предложения, которое сработало для меня. Удалите приложение, перезапустите сервер и снова разверните его с помощью инструментов на устройство.


У меня была эта проблема, когда я пытался отладить свой код (при использовании toggle inspector в моем телефоне android и разработке react ), я сделал эти простые шаги:

  1. открыть меню в телефоне ( где перезагрузка , я могу открыть его долгим нажатием на кнопку или встряхивания телефона ) Введите описание изображения здесь
  2. нажмите Dev Setting
  3. в отладке - > хост и порт сервера отладки для устройства должны быть пустыми Примечание: Если вы написали порт или что-то еще здесь ( для отладки ), вы должны очистить его.

Я столкнулся с этой проблемой не с реальным устройством, а с эмулятором. Я исправил это, запустив react-native start в терминале, прежде чем пытаться запустить код с android studio. Я никогда не сталкивался с этой проблемой при запуске react-native run-android в терминале.


Я разрешаю это с помощью этого cmd:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p