Почему приложение Android, созданное в React Native, не открывается?

В этом месяце я переключился на React Native с Angular 7. Меня больше всего привлекает эта увлекательная структура - быстрое взаимодействие компонентов (на базе babel для jsx) в отличие от HTML-шаблонов, контролируемых .ts в Angular 7, которые иногда требуют обновления для обновления. графический интерфейс. Возможности HTML в js-коде - это вершина перехода от фреймворка.

Я надеюсь найти здесь необходимую помощь.

Однако я борюсь с трудностью создания файла apk из моего проекта React Native с помощью Android Studio. Мне удалось создать подписанный apk, который был установлен на моем устройстве Techno W2 без каких-либо ошибок; но приложение не открывается и не имеет видимого значка запуска. Хотя он указан в установленных приложениях в настройках. После установки кнопка «открыть» неактивна.

Мы будем очень благодарны за любую помощь в этом вопросе, поскольку я не могу продолжить разработку React Native, пока проблема не будет решена. Я хочу создавать свои файлы apk локально, а не использовать сервисы Expo, которые создают файлы огромных размеров. Примечание. Мой проект React Native создается с помощью 'expo init project-name', а затем извлекается с помощью 'expo eject', чтобы регенерировать каталоги android и iOS.

Спасибо.

react-native run-android в терминале пробовали?

LonelyCpp 27.11.2018 09:52

Может быть, глупый вопрос, и я не знаю, как именно он работает в react native, но есть ли у вас Activity с фильтром намерений, который содержит действие MAIN и категорию LAUNCHER?

Matej Košút 27.11.2018 09:59

Я сделал. Терминал работает отлично. Все отлично. У меня проблема с созданным apk с использованием последней версии Android Studio.

Emeka Ndefo 27.11.2018 10:01

@Matej У меня есть они в AndroidManifest.xml в каталоге android / app / SRC / main

Emeka Ndefo 27.11.2018 10:05
0
4
4 596
2

Ответы 2

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

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

react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res/

После завершения этого процесса создайте подписанный apk, и вы сможете успешно рутировать свое приложение.

С точки зрения обучения: я бы сказал НЕ ИСПОЛЬЗОВАТЬ EXPO. Поскольку документация там скудная, и это полностью упрощает работу, вы попадаете в безлюдную страну, когда вам нужно работать над сложными вещами, используя собственные зависимости. Изучите официальную документацию и попробуйте придерживаться react-native init.

Спасибо всем за ответ. Позже у меня все заработало. Android Studio хорошо работает с подписью и созданием apk (метод CLI мне не подходит). Последняя версия Studio поставляется с возможностями apk minify и apk анализа. Я бросил Expo. Родной способ дает много контроля; только то, что в большинстве случаев приходится искать больше решений.

Emeka Ndefo 05.12.2018 04:34

Dropping Expo - это самое умное, что можно сделать. Его хрень и документация намного хуже, чем официальная документация RN, и это отстой в разработке, ограничивая возможности отладки и знакомства с реальной частью мобильных устройств.

Suraj Malviya 05.12.2018 04:38

В первую очередь не рекомендую использовать EXPO. Вместо создания проекта в EXPO используйте обычный метод для создания проекта с использованием встроенного init YouProject

Перед запуском проекта убедитесь, что все модули узлов настроены правильно.
Для установки узловых модулей запустите npm install --save

Запустите свой проект с помощью
react-native run-android для android
react-native run-ios для iOS

Инструкция для Genarate неподписанного APK

  1. Убедитесь, что вы удалили предыдущие файлы сборки, если они у вас есть.
  2. Удалить папку сборки на ВашПроект> андроид> приложение> сборка
  3. Запустите эту команду сценария на своем терминале, чтобы сгенерировать выходной apk.

mkdir -p android/app/src/main/assets && rm -rf android/app/build && 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 && cd android && ./gradlew assembleDebug

  1. Получите выходной apk от ВашПроект> андроид> приложение> сборка> выходы> apk> отладка

Для подписания apk используйте эта инструкция

Другие вопросы по теме