Aplikacja ginie podczas uruchamiania (połączenie z serwerem nie powiodło się)
Mam aplikację na Androida, którą piszę za pomocą PhoneGap BUILD. Wcześniej aplikacja działała dobrze, ale teraz wygląda na to, że pojawia się ten błąd po udoskonaleniu mojej aplikacji (tylko niektóre zmiany interfejsu użytkownika)
1) Kiedy uruchamiam aplikację, (zwykle) otrzymuję:
Błąd aplikacji - połączenie z serwerem nie powiodło się. (plik: ///android_asset/www/index.html)
Przepraszamy, jeśli jest to powtórzenie jakiegokolwiek pytania. Widziałem tutaj kilka podobnych pytań, ale nie mogłem znaleźć idealnej odpowiedzi lub rozwiązania. Tak jak w moim przypadku działało dobrze aż do moich ostatnich zmian.
W swoim pliku config.xml dodaj tę linię:
źródło
<preference name="loadUrlTimeoutValue" value="120000" />
jest lepszy w porównaniu z 700000, to znaczy, jeśli twoja aplikacja nie pojawia się w ciągu dwóch minut, to coś jest nie tak (i powinieneś to naprawić za pomocą innego rozwiązania). Zaskocznie nie chcesz czekać około 11 minut, aby zobaczyć, czy aplikacja się zbliża, czy nie! (Dlatego przede wszystkim mamy pojęcie limitu czasu, prawda? :-)) Zgodnie z dokumentem domyślna wartość to 20000 (20 sekund)Oto działające rozwiązanie
utwórz nową stronę main.html
przykład:
zmień następujące w mainactivity.java
do
Teraz stwórz swoją aplikację i będzie działać na każdym wolnym połączeniu
odniesienie .
UWAGA: jest to obejście, które znalazłem w 2013 roku.
źródło
index.html
, abymain.html
i utworzyćindex.html
stronę, a następnie dodaćwindow.location = './main.html'
. naindex.html
stronie. To powinno działać.main.html
jest lekki i nie ma skryptów do załadowania, dzięki czemu szybciej inicjalizuje aplikację, a następnie ładuje skryptyindex.html
. Zamknięcie</head>
było literówką, dodaną teraz.Usuń zdalnie połączone pliki jQuery, takie jak:
https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
Zamiast tego pobierz ten plik i załaduj go z lokalnego folderu js, tworząc identyfikator URI:
js/jquery.min.js
źródło
Usuń zewnętrzne skrypty z pliku index.html
Zmień to:
do
źródło
Miałem podobny problem i na podstawie powyższych sugestii najpierw dodałem "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000);" ale to nie pomogło. Wypróbowałem więc Project -> Clean, zadziałało i mogę teraz uruchomić aplikację!
Avinash ...
źródło
Spróbuj tego,
źródło
To samo miałem w swoim projekcie.
Próbowałem "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000);", ale bezskutecznie.
Upewniłem się, że wszystkie pliki zostały poprawnie połączone [pliki CSS, JS itp.], Zweryfikowałem kod HTML za pomocą walidatora w3c [ http://validator.w3.org/#validate_by_upload ] i wyczyściłem projekt [Projekt -> Wyczyść]
Teraz ładuje się i wykonuje bez tego samego błędu.
Mam nadzieję że to pomoże
źródło
Wydłużenie limitu czasu ładowania nie rozwiąże problemu, który spowodował błąd, po prostu zapobiegnie wyświetleniu komunikatu przez system, ale w jakikolwiek sposób wpłynie to na wydajność.
Rzeczywisty powód: być może łączysz pliki lub obrazy ze zdalnymi lokalizacjami, a ładowanie tych zasobów trwa zbyt długo. (jest to prawdopodobnie najczęstszy błąd)
Ostateczne rozwiązanie: przenieś wszystkie potrzebne skrypty, obrazy i css do niektórych folderów lokalnych i załaduj je lokalnie ...
Wydajność zostanie zwiększona, a błędy zostaną skutecznie rozwiązane.
źródło
naprawiając to w aplikacji jonowej, po prostu dodaj
do pliku config.xml bezpośrednio po tym wierszu
źródło
Sprawdź
index.html
plik. Jeśli korzystasz z zasobów zewnętrznych, które nie są dostępne podczas uruchamiania aplikacji, możesz otrzymać ten błąd.W moim przypadku zapomniałem usunąć link w skrypcie debuggera (weinre).
Więc aplikacja działała na emulatorze, ponieważ
http://192.168.0.102:8080/
znajdowała się na moim hoście lokalnym i była dostępna dla emulatora.Ale kiedy konfigurowałem aplikację na telefonie komórkowym, miałem ten sam błąd, ponieważ 192.168.0.102 nie był dostępny z sieci komórkowej.
źródło
W moim przypadku używam ionic i po prostu zamknąłem okno dialogowe, które przeszło do aplikacji w emulatorze i zamiast tego uruchomiłem moją aplikację. To zadziałało. Wpadłem na to stąd, ponieważ był to tylko czas oczekiwania.
źródło
Jeśli korzystasz z programu Visual Studio. Po zmianie config.xml czasami tego potrzebujesz
To działa dla mnie.
źródło
W moim przypadku problem wynikał z utraty połączenia internetowego w moim WiFi.
źródło
Miałem ten sam problem. Zauważyłem, że w swoim indeksie mam zarówno funkcję „on device ready”, jak i „document.ready”, więc usunięcie jednego z nich rozwiązało problem :)
źródło
Innym powodem może wystąpić ten błąd jest: nie ma
index.html
w.../YourApp/www/
!Właśnie skorzystałem z przewodnika jonowego , a jednym z kroków jest:
W systemie iOS nie stanowi to problemu, ponieważ podczas kompilacji kompilator zamiast tego pobiera domyślny kod HTML. Jednak budując dla Androida, NIE MA przykładu
index.html
jest używany. Zajęło mi to trochę czasu, zanim się dowiedziałem („DLACZEGO to działa na iOS, ale nie na Androidzie…?)Proste rozwiązanie: utwórz plik index.html, zapisz go pod
.../YourApp/www
, przebuduj ... i voila!źródło