web-dev-qa-db-fra.com

Type d'erreur 3. La classe d'activité {com.awesome_project/com.awesome_project.MainActivity} n'existe pas dans rea native (appareil Android)

J'ai créé le projet à l'aide de la commande suivante. 

react-native init Awesome_Project

J'ai démarré le conditionneur à l'aide de la commande suivante. 

react-native start

J'ai connecté mon mobile Android à l'aide d'une clé USB.

J'ai ouvert une autre commande, Invite et exécutez la commande adb suivante pour vous assurer qu'un seul périphérique est connecté.

adb devices

J'ai démarré l'application à l'aide de la commande suivante.

react-native run-Android

J'ai été confronté à l'erreur suivante.

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.

Merci d'avance.

32
user5627316

Assurez-vous que Android>app>build.gradle

defaultConfig {
        applicationId "WHATEVER_THIS_IS" 
}

doit correspondre à Android>app>src>main>Java>com>app_name>MainActivity.Java ligne un: 

package WHATEVER_THIS_IS;

doit correspondre à Android>app>src>main>Java>com>app_name>MainApplication.Java ligne un: 

package WHATEVER_THIS_IS;

doit correspondre à Android>app>src>main>AndroidManifest.xml ligne un:

package="WHATEVER_THIS_IS">
42
parker

J'ai désinstallé l'application de mon appareil et je ne pouvais pas la voir dans Paramètres> Applications. L'erreur a finalement disparu après avoir complètement désinstallé l'application en faisant:

adb uninstall com.appname
9
Fran

essayez d'exécuter la commande adb pour installer l'apk (devrait fournir plus de sortie) depuis le répertoire Android dans votre projet: adb install app/build/outputs/apk/app-debug.apk

Dans mon cas était un cas de stockage insuffisant

facebook/react-native numéro # 2885

9
user6923610

Si vous avez appIdSuffix, vous devez l'ajouter à la commande pour réagir à la commande d'exécution native.

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

Devrait ajouter un raccourci vers package.json et exécuter via npm.

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

Puis lancez simplement: 

npm run Android-beta
7
Thanh Lam

J'avais changé mon identifiant d'application de com.appName à com.companyName.appName et j'avais effectué cette mise à jour dans Android>app>build.gradle:

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

J'ai également changé ma structure de fichier de Android>app>src>main>Java>com>appName à Android>app>src>main>Java>com>companyName>appName. C'est quand j'ai eu l'erreur.

Pour corriger l'erreur , j'ai simplement fait une recherche à l'échelle du projet (CMD-SHIFT-F dans Atom) pour com.appName et les ai tous remplacés par com.companyName.appName. Problème résolu!

7
Danny Harding

Je me suis heurté à ce problème après avoir installé avec succès une version sur mon téléphone, mais j'ai dû le désinstaller afin de pouvoir effectuer une nouvelle installation. Après avoir désinstallé l'application et essayé de faire un react-native run-Android, j'ai reçu cette erreur. 

Il semble que la "désinstallation" d'une application sur certains appareils ne la désactive que si vous souhaitez annuler la désinstallation dans un certain délai. Pour remédier à cela, je suis allé dans Applications sous Paramètres, j'ai sélectionné mon application et je l'ai complètement désinstallée. Après cela, j'ai pu reconstruire avec succès mon application. J'espère que cela aide quelqu'un.

5
wizloc

Dans mon cas, l'application ne s'ouvre pas automatiquement , il n'y a pas d'autre problème.

Il vous suffit de rechercher l'icône de l'application sur votre appareil Android (recherchez l'emplacement de toutes les applications) et de taper dessus pour ouvrir l'application manuellement . Le conditionneur commencera à charger l'application comme d'habitude.

Donc, cela semble être un bug ici. Malheureusement, je ne sais pas vraiment ce qui le cause.

2
Andru

Parfois, vous obtenez cette erreur parce que vous ne désinstallez pas une autre version précédente de l'application. Sur les téléphones LG, vous devez accéder aux paramètres de l'application et désinstaller l'application. 

1
Jonathan Guerrero

Si vous avez des liens avec des bibliothèques, assurez-vous que le fichier settings.gradle situé dans ProjectName/Android contient votre application dans l'instruction include, comme ceci: include ':ThirdPartyLibrary', ':app'. J'ai oublié :app et il s'agissait de la construction et de l'installation de la bibliothèque tierce partie, mais pas de l'application réelle, ce qui a entraîné le problème. 

1
Kyle Erickson

Vous avez peut-être supprimé/désinstallé votre application, mais lorsque vous enregistrez vos paramètres/applications, vous pouvez voir qu'elle n'est pas totalement désinstallée.

  • Aller aux paramètres.
  • Aller aux applications.
  • Sélectionnez votre application. (Ici, vous pouvez vérifier que votre application n'est pas désinstallée correctement).
  • Ouvrez le menu de dépassement en haut à droite et sélectionnez Désinstaller pour tous les utilisateurs . Terminé. Essayez d’installer puis de relancer votre application.

La source

1
Aditya

Ce problème s'est produit dans mon cas lorsque j'ai désinstallé l'application et essayé à nouveau d'installer avec react-native run-Android.

La suite a fonctionné pour moi:
1. Accédez à la liste des applications à partir du menu Paramètres.
2. Vous verrez votre application dans la liste avec un message sur le côté gauche "Application non installée pour cet utilisateur" .
3. Ouvrez cette application dans les paramètres, puis cliquez sur l'icône du menu en haut à droite et sélectionnez "Désinstaller pour tous les utilisateurs" . J'espère que cela aidera!

1
AkshayM

Dans mon cas, le nom du paquet (client.client_info.Android_client_info.package_name) dans le fichier google-services.json (de Firebase) était incorrect. Cela devait correspondre à ces quatre valeurs, comme l'a mentionné @parker.

0

Cela se produit si vous avez activé Build Varaints dans le fichier build.gradle de votre application.

Lorsque react-native s'exécute, il semble préfixer test ou quelque chose comme votre id d'application, qui modifie les noms de paquet dans certains fichiers mais laisse les autres identiques. Votre application ne peut pas trouver .MainActivity car elle n'existe pas dans le nouvel espace de noms de package généré.

Voici quelques conseils pour essayer de résoudre ce problème:

  • Utilisez le nom de domaine complet dans votre fichier manifeste pour les noms de la classe d'application et de la classe d'activité.
  • Remplacez votre fichier cli Android par ceci one . Ceci est le fichier dans /node_modules/react-native/local-cli/runAndroid

Cela devrait résoudre votre problème.

0
prog_24

Eh bien, cela se produit lorsque nous désinstallons manuellement apk de mobile.Il indique que MainActivity n’existe pas. Solution proposée: accédez aux applications dans la configuration, désinstallez l’instance de cette appli pour tous les utilisateurs et exécutez-la à nouveau à l’aide du réactif natif exécuté par Android. votre problème

0
Pratik Karale

J'ai essayé toutes les réponses affichées ci-dessus, pas de résultat pour mon cas d'utilisation.

Il a finalement été résolu en exécutant comme ceci:

react-native run-Android --variant=alphaDebug

s'il existe plusieurs variantes dans l'application, nous devons mentionner la variante via la ligne de commande

0
Pavan Gangireddy

Je l'ai résolu en installant l'application de débogage manuellement sur le téléphone mobile.

Pour ce faire, accédez à [Chemin_du_projet]\Android\app\build\sorties\apk\debug\app-debug.apk

Copiez ce fichier app-debug.apk sur votre appareil mobile.

Maintenant, installez-le normalement sur votre mobile et vous êtes prêt à partir.

0
Raj Rohit

Dans mon cas .. aucune des solutions ci-dessus ne fonctionnait ..__ Ensuite, j’en ai trouvé la cause, j’avais déjà installé une application avec le même nom de paquet. Je l’avais désinstallé de mon téléphone, mais comme j’ai un appareil Oreo, il a également été installé chez un autre utilisateur. Donc, en désinstallant de tous les utilisateurs .. résolu mon problème . Il pourrait ne pas être utile dans votre cas .. mais toujours ceci est ma solution de contournement.

0
Yash