Невозможно загрузить скрипт из индекса активов.андроид.пакет на Windows
Я пытаюсь запустить свой первый проект React Native впервые на своем устройстве (Android 4.2.2).
а я:
не удается загрузить скрипт из индекса активов.андроид.бандл
команды, которые я использовал:
cd (project directory)
react-native start
react-native run-android
30 ответов:
я столкнулся с той же проблемой, следуя React Native учебник (разработка на Linux и таргетинг на Android).
этой вопрос помог мне решить проблему в следующих шагах.
- (в каталоге проекта)
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
вы можете автоматизировать вышеупомянутые шаги, поместив их в
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
- найдите свой локальный IP
- Откройте приложение и встряхните устройство Android
- Go Dev Setting and>Debug Server...
- вставьте свой IP и порт; X. X. X:8088" (где X-ваш локальный IP)
для пользователя Mac: откройте Настройки сети, здесь вы получите свой локальный IP.
Если вы используете Windows, выполните команды следующим образом, или если вы получаете сообщение об ошибке "не удается найти запись индексного файла.андроид.ОАО"
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 находится в вашей системе разработки, и приложение внутри вашего реального устройства не знает о его местоположении.
была такая же проблема в 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
. Я получил ту же ошибку. поэтому я делаю следующие шаги, чтобы решить эту проблему в моем случае.
- во-первых работать
sudo chown user-name-of-pc /dev/kvm
в моем случае.во время отладки с вашего телефона Android, выберите
Use USB to Transfer photos (PTP)
.Создать Папку
assets
в project-name / android / app/src / main- убедится
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
выполнить команду
./studio.sh
на выполнитьreact-native run-android
.
если при запуске
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, эта проблема появляется, и когда я следовал этому критические изменения и устаревания
Он исчез.
я столкнулся с этой проблемой, много поиска, и я решил эту проблему.
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
- если он существует, то удалите два файла viz
index.android.bundle
иindex.android.bundle.meta
- если ресурсы папки не существуют, то создайте каталог активов там.
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
- теперь бегите
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), я сделал это простые шаги:
- открыть меню в телефоне ( где перезагрузка , я могу открыть его долгим нажатием на кнопку или встряхивания телефона ) Введите описание изображения здесь
- нажмите Dev Setting
- в отладке - > Debug Server host & port для устройства должен быть пустым Примечание : Если вы написали порт или что-нибудь здесь ( для отладки ), вы должны очистить его.