App stirbt beim Start (Verbindung zum Server war nicht erfolgreich)
Ich habe eine Android-Anwendung, die ich mit PhoneGap BUILD schreibe. Die App hat früher gut funktioniert, aber jetzt scheint es, dass ich diesen Fehler erhalte, nachdem ich meine App verfeinert habe (nur einige Änderungen an der Benutzeroberfläche).
1) Wenn ich die App starte, bekomme ich (normalerweise):
Anwendungsfehler - Die Verbindung zum Server war nicht erfolgreich. (Datei: ///android_asset/www/index.html)
Entschuldigung, wenn dies eine Verdoppelung einer Frage ist. Ich habe hier einige ähnliche Fragen gesehen, aber ich konnte keine perfekte Antwort oder Lösung finden. Wie in meinem Fall hat es bis zu meinen letzten Änderungen gut funktioniert.
Fügen Sie in Ihrer Datei config.xml die folgende Zeile hinzu:
quelle
<preference name="loadUrlTimeoutValue" value="120000" />
ist besser im Vergleich zu 700000, ich meine, wenn Ihre App nicht in zwei Minuten startet, dann stimmt etwas nicht (und Sie sollten es mit einer anderen Lösung beheben). Sicherlich möchten Sie nicht etwa 11 Minuten warten, um zu sehen, ob eine App verfügbar ist oder nicht! (Deshalb haben wir überhaupt ein Timeout-Konzept, oder? :-)) Laut Dokument ist der Standardwert 20000 (20 Sekunden)Hier ist die Arbeitslösung
Erstellen Sie eine neue Seite main.html
Beispiel:
Ändern Sie Folgendes in mainactivity.java
zu
Erstellen Sie jetzt Ihre Anwendung und sie funktioniert bei jeder langsamen Verbindung
Referenz .
HINWEIS: Dies ist eine Problemumgehung, die ich 2013 gefunden habe.
quelle
index.html
zumain.html
und erstellenindex.html
Seite, dann fügenwindow.location = './main.html'
. inindex.html
Seite. Das sollte funktionieren.main.html
Light leicht ist und keine Skripte geladen werden müssen, wodurch die App schneller initialisiert und die Skripte dann geladen werdenindex.html
. Das Schließen</head>
war ein Tippfehler, der jetzt hinzugefügt wurde.Bitte entfernen Sie remote verknüpfte jQuery-Dateien wie:
https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
Laden Sie stattdessen diese Datei herunter und laden Sie sie aus Ihrem lokalen js-Ordner. Erstellen Sie dabei den URI:
js/jquery.min.js
quelle
Entfernen Sie die externen Skripte in Ihrer index.html
Ändere das:
zu
quelle
Ich hatte ein ähnliches Problem und basierend auf den obigen Vorschlägen fügte ich zuerst "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000)" hinzu. aber das hat nicht geholfen. Also habe ich Project -> Clean ausprobiert, das hat funktioniert und ich kann die App jetzt starten!
Avinash ...
quelle
Versuche dies,
quelle
Ich hatte das gleiche bei meinem Projekt.
Ich habe "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000);" versucht, aber ohne Erfolg.
Ich habe sichergestellt, dass alle Dateien ordnungsgemäß verknüpft sind [CSS, JS-Dateien usw.], den HTML-Code mit dem w3c-Validator [ http://validator.w3.org/#validate_by_upload ] validiert und das Projekt [Projekt -> Bereinigen] bereinigt.
Es wird jetzt ohne denselben Fehler geladen und ausgeführt.
Hoffe das hilft
quelle
Durch die Verlängerung des Ladezeitlimits wird das Problem, das den Fehler verursacht hat, nicht behoben. Es wird lediglich vermieden, dass das System die Meldung anzeigt, die Leistung wird jedoch beeinträchtigt.
Tatsächlicher Grund: Möglicherweise verknüpfen Sie Dateien oder Bilder mit Remotestandorten, und das Laden dieser Ressourcen dauert zu lange. (Dies ist wahrscheinlich der häufigste Fehler)
Definitive Lösung: Verschieben Sie alle benötigten Skripte, Bilder und CSS in einige lokale Ordner und laden Sie sie lokal ...
Die Leistung wird gesteigert und Fehler werden effektiv behoben.
quelle
Um dies in einer ionischen App zu beheben, fügen Sie einfach hinzu
in Ihre config.xml-Datei unmittelbar nach dieser Zeile
quelle
Überprüfen Sie Ihre
index.html
Datei. Wenn Sie externe Ressourcen verwenden, die beim Ausführen der Anwendung nicht verfügbar sind, kann dieser Fehler auftreten.In meinem Fall habe ich vergessen, den Link im Debugger-Skript (weinre) zu löschen.
Die Anwendung funktionierte also mit dem Emulator, da sie
http://192.168.0.102:8080/
sich auf meinem lokalen Host befand und für den Emulator verfügbar war.Beim Einrichten der Anwendung auf einem Mobiltelefon trat jedoch der gleiche Fehler auf, da 192.168.0.102 nicht über das Mobilfunknetz verfügbar war.
quelle
In meinem Fall verwende ich ionic und habe einfach den Dialog geschlossen, bin zu Apps im Emulator gegangen und habe stattdessen meine App von dort ausgeführt. Das hat funktioniert. Ich kam von hier auf die Idee, da es nur eine Auszeit war.
quelle
Wenn Sie Visual Studio verwenden. Nach dem Ändern von config.xml benötigen Sie dies manchmal
Es funktioniert für mich.
quelle
In meinem Fall war das Problem auf den Verlust der Internetverbindung in meinem WLAN zurückzuführen.
quelle
Ich stand vor dem gleichen Problem. Ich habe festgestellt, dass ich in meinem Index sowohl die Funktion "On Device Ready" als auch die Funktion "Document.ready" hatte. Das Entfernen einer dieser Funktionen hat mein Problem behoben :)
quelle
Ein weiterer Grund, warum dieser Fehler auftreten kann, ist: Es gibt kein
index.html
In.../YourApp/www/
!Ich habe gerade die Ionenführung befolgt und einer der Schritte ist:
Unter iOS ist dies kein Problem, da der Compiler während des Builds stattdessen Standard-HTML verwendet. Beim Erstellen für Android wird jedoch KEIN Beispiel
index.html
verwendet. Ich habe einige Zeit gebraucht, um das herauszufinden ("WARUM funktioniert es unter iOS, aber nicht unter Android ...?)Einfache Lösung: Erstellen Sie eine index.html, speichern Sie sie unter
.../YourApp/www
, erstellen Sie sie neu ... et voila!quelle