Ich habe das Projekt mit dem folgenden Befehl erstellt.
react-native init Awesome_Project
Ich habe den Packager mit dem folgenden Befehl gestartet.
react-native start
Ich habe mein Android-Handy über ein USB-Laufwerk angeschlossen.
Ich habe eine weitere Eingabeaufforderung geöffnet und den folgenden ADB-Befehl ausgeführt, um sicherzustellen, dass nur ein Gerät angeschlossen ist.
adb devices
Ich habe die Anwendung mit dem folgenden Befehl gestartet.
react-native run-Android
Ich bin mit dem folgenden Fehler konfrontiert worden.
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.
Danke im Voraus.
Stellen Sie sicher, dass Android>app>build.gradle
defaultConfig {
applicationId "WHATEVER_THIS_IS"
}
muss mit Android>app>src>main>Java>com>app_name>MainActivity.Java
Zeile eins übereinstimmen:
package WHATEVER_THIS_IS;
muss mit Android>app>src>main>Java>com>app_name>MainApplication.Java
Zeile eins übereinstimmen:
package WHATEVER_THIS_IS;
muss mit Android>app>src>main>AndroidManifest.xml
Zeile eins übereinstimmen:
package="WHATEVER_THIS_IS">
Ich habe die App von meinem Gerät deinstalliert und konnte sie überhaupt nicht in meinen Einstellungen> Apps sehen. Der Fehler wurde endgültig behoben, nachdem ich die App vollständig deinstalliert hatte:
adb uninstall com.appname
führen Sie den Befehl adb aus, um die apk (sollte mehr Ausgabe bereitstellen) von Android-Verzeichnis in Ihrem Projekt zu installieren: adb install app/build/outputs/apk/app-debug.apk
In meinem Fall lag ein unzureichender Lagerungsfall vor
facebook/reag-native issue # 2885
Wenn Sie appIdSuffix haben, sollten Sie es dem Befehl für den Befehl native native Ausführung hinzufügen.
eg. react-native run-Android --appIdSuffix beta
Sollte eine Verknüpfung zu package.json hinzufügen und über npm ausführen.
...
"scripts": {
...
"Android-beta": "react-native run-Android --appIdSuffix beta",
},
Dann lauf einfach:
npm run Android-beta
Ich hatte meine Anwendungs-ID von com.appName
in com.companyName.appName
geändert und dieses Update in Android>app>build.gradle
vorgenommen:
defaultConfig {
applicationId "com.companyName.appName" // was previously "com.appName"
}
Ich habe auch meine Dateistruktur von Android>app>src>main>Java>com>appName
in Android>app>src>main>Java>com>companyName>appName
geändert. Dies ist, wenn ich den Fehler bekam.
Um den Fehler zu beheben habe ich einfach eine projektweite Suche (CMD-SHIFT-F
in Atom) für com.appName
durchgeführt und sie alle durch com.companyName.appName
ersetzt. Problem gelöst!
Ich hatte dieses Problem, nachdem ich ein erfolgreiches Build auf meinem Handy installiert hatte, aber kurz gesagt, musste ich es deinstallieren, um eine Neuinstallation durchzuführen. Nach dem Deinstallieren der App und dem Versuch, einen react-native run-Android
auszuführen, habe ich diese Fehlermeldung erhalten.
Anscheinend wird das Deinstallieren einer Anwendung auf einigen Geräten nur dann deaktiviert, wenn Sie die Deinstallation innerhalb eines bestimmten Zeitraums rückgängig machen möchten. Um Abhilfe zu schaffen, habe ich unter Einstellungen unter Applications die App ausgewählt und meine App komplett deinstalliert. Danach konnte ich meine App erneut erfolgreich erstellen. Hoffe, das hilft jemandem.
In meinem Fall öffnet sich die App einfach nicht automatisch , es gibt kein anderes Problem.
Suchen Sie einfach nach dem App-Symbol auf Ihrem Android-Gerät (suchen Sie den Ort aller Anwendungen) und tippen Sie darauf, um die App manuell zu öffnen . Der Packager beginnt wie üblich mit dem Laden der App.
Dies scheint also ein Fehler zu sein. Leider weiß ich nicht wirklich, was es verursacht.
Manchmal wird diese Fehlermeldung angezeigt, weil Sie keine andere vorherige Version der App deinstallieren. Auf den LG - Telefonen müssen Sie die Einstellungen der App aufrufen und die App deinstallieren.
Für alle anderen Benutzer, bei denen es keine Lösungen gibt, wenn keine Bibliotheken vorhanden sind, müssen Sie sicherstellen, dass sich die App in der settings.gradle
-Datei in ProjectName/Android
in der include-Anweisung befindet, wie folgt: include ':ThirdPartyLibrary', ':app'
. Ich habe :app
vergessen und es war das Erstellen und Installieren der Drittanbieter-Bibliothek, aber nicht die eigentliche App, was zu dem Problem führte.
Sie haben Ihre App möglicherweise gelöscht oder deinstalliert. Wenn Sie jedoch Ihre Einstellungen/Apps einchecken, können Sie feststellen, dass sie nicht vollständig deinstalliert wurde.
Dieses Problem trat in meinem Fall auf, als ich die App deinstallierte und die Installation mit react-native run-Android
erneut versuchte.
.__ Folgendes arbeitete für mich:
1. Gehen Sie im Einstellungsmenü zur Anwendungsliste.
2. Sie sehen Ihre Anwendung in der Liste mit einer Meldung auf der linken Seite "App für diesen Benutzer nicht installiert" .
3. Öffnen Sie die App in den Einstellungen und klicken Sie dann auf das Menüsymbol oben rechts und wählen Sie "Für alle Benutzer deinstallieren" . Hoffe, es hilft!
In meinem Fall hatte ich in google-services.json (von Firebase) den falschen package_name (client.client_info.Android_client_info.package_name
). Es musste diesen vier Werten entsprechen, wie @parker erwähnt wurde.
Dies geschieht, wenn Sie in Ihrer App build.gradle-Datei Build-Varaints aktiviert haben.
Wenn reaktives System ausgeführt wird, scheint es vor Ihrer Anwendungs-ID test oder etwas zu setzen, wodurch die Paketnamen in einigen Dateien geändert werden, andere jedoch gleich bleiben. Ihre Anwendung kann .MainActivity nicht finden, da sie tatsächlich nicht in dem neuen Paket-Namespace vorhanden ist, der generiert wurde.
Hier sind einige Dinge, mit denen Sie versuchen können, dieses Problem zu beheben:
/node_modules/react-native/local-cli/runAndroid
Dies sollte Ihr Problem lösen.
Ich hatte eine etwas andere Einstellung zum selben Thema.
Ich benutze nicht reagieren, aber ich bin auf das gleiche Problem gestoßen.
Ich habe alle Lösungen auf dieser Seite ausprobiert und seltsamerweise hat jede einmal funktioniert. Das Problem trat jedoch weiterhin auf.
Am Ende fand ich das zu tun:
adb uninstall com.appname
gefolgt von einem Neustart des Mobilteils
Das Problem wurde jedes Mal behoben, seitdem es entdeckt wurde.
Verwenden eines Samsung S8 und Android 3.4.1. Keine verrückten Bibliotheken außer OKHttp. Laufen auf einem Mac.
Nun, dies passiert, wenn wir apk manuell von Hand deinstallieren. Es zeigt an, dass MainActivity nicht vorhanden ist .. Lösung: Gehen Sie zu Einstellungen und deinstallieren Sie die Instanz der App für alle Benutzer und führen Sie sie erneut aus dein Problem
Dies ist mir passiert, nachdem ich den Namen meines Projektpakets geändert habe. Ich habe einige der anderen Antworten hier ausprobiert, aber nichts hat funktioniert, bis ich das Verzeichnis Android/build
Manuell gelöscht und react-native run-Android
Erneut ausgeführt habe, wodurch die App von src aus neu erstellt werden musste. Es stellte sich heraus, dass der Build mit Verweisen auf den alten Paketnamen zwischengespeichert wurde.
Ich habe alle Antworten ausprobiert, kein Ergebnis für meinen Anwendungsfall.
Es wurde schließlich durch folgende Ausführung behoben:
react-native run-Android --variant=alphaDebug
wenn in der App mehrere Varianten vorhanden sind, müssen Sie die Variante über die Befehlszeile angeben
Ich habe es gelöst, indem ich die Debug-Anwendung manuell auf dem Mobiltelefon installiert habe.
Gehen Sie dazu zu [Project_Path]\Android\app\build\output\apk\debug\app-debug.apk
Kopieren Sie diese Datei app-debug.apk auf Ihr Mobilgerät.
Installieren Sie es jetzt normal in Ihrem Handy und Sie können loslegen.
In meinem Fall ... funktionierte keine der obigen Lösungen ..__ Dann fand ich die Ursache dafür, ich hatte zuvor eine Anwendung mit demselben Paketnamen installiert. Ich hatte es von meinem Handy deinstalliert, aber da ich Oreo-Gerät habe, wurde es auch in einem anderen Benutzer installiert. Durch die Deinstallation aller Benutzer wurde das Problem gelöst .. Es ist in Ihrem Fall möglicherweise nicht hilfreich. Dies ist jedoch immer noch meine Problemumgehung.