Подтвердить что ты не робот

Тип ошибки 3. Класс активности {com.awesome_project/com.awesome_project.MainActivity} не существует в реакции native (Android-устройство)

Я создал проект, используя следующую команду.

react-native init Awesome_Project

Я начал упаковщик, используя следующую команду.

react-native start

Я подключил свой Android-телефон с помощью USB-накопителя.

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

adb devices

Я запустил приложение, используя следующую команду.

react-native run-android

Я столкнулся со следующей ошибкой.

open: Permission denied
open: Permission denied
Starting: Intent { com.awesome_project/.MainActivity }
Error type 3
Error: Activity class {com.awesome_project/ com.awesome_project.MainActivity} does not exist.

Спасибо заранее.

4b9b3361

Ответ 1

Убедитесь, что android>app>build.gradle

defaultConfig {
        applicationId "WHATEVER_THIS_IS" 
}

должен соответствовать android>app>src>main>java>com>app_name>MainActivity.java строка первая:

package WHATEVER_THIS_IS;

должен соответствовать android>app>src>main>java>com>app_name>MainApplication.java строка первая:

package WHATEVER_THIS_IS;

должен соответствовать android>app>src>main>AndroidManifest.xml строка первая:

package="WHATEVER_THIS_IS">

Ответ 2

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

adb uninstall com.appname

Ответ 3

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

eg.   react-native run-android --appIdSuffix beta

Нужно добавить ярлык в package.json и запустить через npm.

...
"scripts": {
 ...
  "android-beta": "react-native run-android --appIdSuffix beta",
},

Тогда просто запустите:

npm run android-beta

Ответ 4

попробуйте запустить команду adb, чтобы установить apk (должен предоставить больше вывода) из каталога android в вашем проекте: adb install app/build/outputs/apk/app-debug.apk

В моем случае был недостаток хранения

facebook/react-native issue # 2885

Ответ 5

Я изменил свой идентификатор приложения от com.appName до com.companyName.appName, и я сделал это обновление в android>app>build.gradle:

defaultConfig {
  applicationId "com.companyName.appName" // was previously "com.appName"
}

Я также изменил свою файловую структуру с android>app>src>main>java>com>appName на android>app>src>main>java>com>companyName>appName. Это когда я получил ошибку.

Чтобы исправить ошибку, я просто выполнил широкомасштабный поиск проекта (CMD-SHIFT-F в Atom) для com.appName и заменил их на com.companyName.appName. Проблема решена!

Ответ 6

Я столкнулся с этой проблемой после успешной сборки, установленной на моем телефоне, но короткая короткая история мне пришлось удалить, чтобы сделать новую установку. После удаления приложения и попытки выполнить react-native run-android, я получил эту ошибку.

Кажется, что "удаление" приложения на некоторых устройствах отключает его только в том случае, если вы хотите отменить удаление в течение определенного периода времени. Чтобы исправить это, я пошел в Приложения по настройкам и выбрал свое приложение и полностью удалил его. После этого я смог успешно создать свое приложение снова. Надеюсь, это поможет кому-то.

Ответ 7

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

  • Перейдите в настройки.
  • Перейти в приложения.
  • Выберите ваше приложение. (здесь вы можете убедиться, что ваше приложение не удалено должным образом).
  • Откройте меню переполнения в правом верхнем углу и выберите Удалить для всех пользователей. Готово. Попробуйте установить и снова запустить приложение.

Источник

Ответ 8

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

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

Так что это, кажется, ошибка здесь. К сожалению, я действительно не знаю, что вызывает его.

Ответ 9

Для всех, кто сталкивается с этой проблемой, где нет решений, если вы связали библиотеки, убедитесь, что в файле settings.gradle, расположенном в ProjectName/android, есть ваше приложение в инструкции include, например: include ':ThirdPartyLibrary', ':app'. Я забыл :app, и это была сборка и установка сторонней библиотеки, но не фактическое приложение, в результате чего возникла проблема.

Ответ 10

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

Ответ 11

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

Следующее сработало у меня:
1. Перейдите к списку приложений в меню настроек.
2. Вы увидите ваше приложение в списке с сообщением слева "Приложение не установлено для этого пользователя".
3. Откройте это приложение в настройках, затем щелкните значок в правом верхнем углу меню и выберите "Удалить для всех пользователей". Надеюсь, поможет!

Ответ 12

Это происходит, если вы включили сборку varaints в файле build.gradle приложения.

Когда выполняется реакция-native, кажется, что это префиксный тест или что-то вроде вашего идентификатора приложения, который изменяет имена пакетов в некоторых файлах, но оставляет их одинаковыми. Ваше приложение не может найти .MainActivity, потому что оно фактически не существует в новом пространстве имен пакетов, которое было сгенерировано.

Вот некоторые вопросы, чтобы попытаться исправить эту проблему:

  • Используйте FQDN в вашем файле манифеста для имен класса приложения и класса активности.
  • Замените файл cli для Android с помощью one. Это файл в /node_modules/react-native/local-cli/runAndroid

Это должно решить вашу проблему.

Ответ 13

В моем случае.. ни одно из вышеуказанных решений не сработало. Затем, я нашел причину этого, я ранее установил приложение с тем же именем пакета. Я удалил его с моего телефона, но, поскольку у меня есть устройство Oreo... оно было установлено и у другого пользователя. Итак, удалив из всех пользователей.. решил мою проблему. Это может быть не полезно в вашем случае... но все же это мой обходной путь.

Ответ 14

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

Для этого перейдите в [Project_Path]\android\app\build\output\apk\debug\app-debug.apk

Скопируйте этот app-debug.apk на ваше мобильное устройство.

Теперь просто установите его на свой мобильный, и все готово.

Ответ 15

Что ж, это происходит, когда мы вручную удаляем apk с мобильного телефона. Это показывает, что MainActivity не существует. Решение. Перейдите к приложениям в настройках и удалите экземпляр приложения для всех пользователей, а затем запустите его снова с помощьюact-native run-android.

Ответ 16

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

Это было решено, наконец, путем выполнения этого:

react-native run-android --variant=alphaDebug

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

Ответ 17

В моем случае у меня было неправильное имя_пакета (client.client_info.android_client_info.package_name) в google-services.json (из Firebase). Он должен был соответствовать этим четырем значениям, указанным @parker.

Ответ 18

Это случилось со мной после изменения имени пакета моего проекта. Я попробовал некоторые другие ответы здесь, но ничего не получалось, пока я вручную не удалил каталог android/build и повторно запустил react-native run-android заставив приложение перестраиваться из src. Оказывается, сборка была кэширована, включая ссылки на старое имя пакета.

Ответ 19

У меня был немного другой взгляд на ту же проблему.

Я не использую реакцию, однако столкнулся с этой же проблемой.

Я перепробовал все решения на этой странице, и, как ни странно, каждое из них сработало один раз. Но проблема продолжала возвращаться.

В итоге я обнаружил, что занимаюсь:

  1. adb удалить com.appname

  2. с последующим перезапуском телефона

Решил проблему каждый раз с момента открытия.

Использование Samsung S8 и Android 3.4.1. Никаких сумасшедших библиотек кроме OKHttp. Работает на Mac.