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


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

а я:

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

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

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

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 реагировать родной CLI версия 2.01 реагировать родной версии 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 до .js

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

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

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

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

Если вы используете Windows, выполните команды следующим образом, или если вы получаете сообщение об ошибке "не удается найти запись индексного файла.андроид.ОАО"

  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
Поэтому я вставлю путь в системные переменные Больше 2 строк:

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

(Если вы не знаете, как редактировать системные переменные path, вот тема: 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 инструменты разработки, такие как горячая перезагрузка и т. д.

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

в своем 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 Native project, например, когда вы переименовываете свое приложение проекта/идентификатор пакета или добавляете внешний пакет без ссылки на него должным образом, например.

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

react-native link

react-native run-android

на IOS:

в терминала:

cd ios

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

запустить еще раз:react-native run-ios

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

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

для ANDROID:

в терминала:

cd android/app

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

запустить еще раз:react-native run-android

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

затем запустите снова: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...

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

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

смотрите список туннелей TCP adb:

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).

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

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

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

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

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 --platform android --entry-file индекс.js -- пачка-выход android / app/src/main/assets / index.андроид.комплект --активы-дест android / app / src / main / res

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

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

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

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

  1. если он существует, то удалите два файла viz 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

  • если есть два файла, то есть индекс.андроид.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

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

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

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

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

2). Команда Curl: curl"http://localhost:8081/index.андроид.бандл?платформа=андроид" - o " android / app/src/main/assets / index.андроид.бандл"

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

3). реагировать родной пробег-андроид

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

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

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

Я столкнулся с этой проблемой не с реальным устройством, а с эмулятором. Я исправил это, запустив 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