Невозможно загрузить скрипт из индекса активов.андроид.пакет на Windows
Я пытаюсь запустить свой первый собственный проект React впервые на своем устройстве (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 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
- найдите свой локальный IP
- Откройте приложение и встряхните Android-устройство
- Go Dev настройки и > Debug Server...
- вставьте свой IP и порт; X. X. X. X: 8088" (где X-ваш локальный IP)
для пользователя Mac: откройте Настройки сети, здесь вы получите свой локальный IP.
Если вы используете Windows, выполните команды следующим образом, или если вы получаете сообщение об ошибке "не удается найти запись индексного файла.андроид.js"
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
Поэтому я вставлю 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
.
Я получил ту же ошибку.
поэтому я делаю следующие шаги, чтобы решить эту проблему в моем случае.
- во-первых работать
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...
это означает, что 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, эта проблема появляется, и когда я следовал этому нарушение изменений и устаревания
Он исчез.
я сталкиваюсь с этой проблемой, много поиска, и я решил эту проблему.
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
- если он существует, то удалить два файла, а именно
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
-
если есть два файла 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
- теперь бегите
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 ), я сделал эти простые шаги:
- открыть меню в телефоне ( где перезагрузка , я могу открыть его долгим нажатием на кнопку или встряхивания телефона ) Введите описание изображения здесь
- нажмите Dev Setting
- в отладке - > хост и порт сервера отладки для устройства должны быть пустыми Примечание: Если вы написали порт или что-то еще здесь ( для отладки ), вы должны очистить его.
Я столкнулся с этой проблемой не с реальным устройством, а с эмулятором. Я исправил это, запустив 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