L'application meurt au démarrage (la connexion au serveur a échoué)
J'ai une application Android que j'écris à l'aide de PhoneGap BUILD. L'application fonctionnait bien auparavant, mais maintenant, il semble que je reçois cette erreur après avoir peaufiné mon application (certaines modifications de l'interface utilisateur uniquement).
1) Quand je lance l'application, je reçois (généralement):
Erreur d'application - La connexion au serveur a échoué. (Fichier: ///Android_asset/www/index.html)
Désolé si cela fait double emploi avec une question. J'ai vu des questions similaires ici, mais je ne trouvais pas de réponse ou solution parfaite. Comme dans mon cas, cela fonctionnait bien jusqu'à mes derniers changements.
Comme vous l'avez dit, il y a beaucoup de questions en double sur le même sujet. Tout comment expliquer votre situation.
Le problème peut être résolu en ajoutant un délai d'expiration pour appeler votre index.html
c'est-à-dire que vous devez ajouter super.setIntegerProperty("loadUrlTimeoutValue", 70000);
dans votre fichier activity.Java (dans src/com/yourProj/-/youractivity.Java) au-dessus de cette ligne: super.loadUrl("file:///Android_asset/www/index.html");
Explication:
Cela peut être dû aux raisons suivantes
La raison principale: le problème est probablement dû à la vitesse de l'émulateur, ce qui explique pourquoi le réseau est trop lent pour terminer la communication à temps.
Cela peut être dû à:
Dans votre fichier config.xml, ajoutez cette ligne:
<preference name="loadUrlTimeoutValue" value="700000" />
Voici la solution de travail
créer une nouvelle page main.html
exemple:
<!doctype html>
<html>
<head>
<title>tittle</title>
<script>
window.location='./index.html';
</script>
</head>
<body>
</body>
</html>
changer ce qui suit dans mainactivity.Java
super.loadUrl("file:///Android_asset/www/index.html");
à
super.loadUrl("file:///Android_asset/www/main.html");
Maintenant, construisez votre application et cela fonctionne sur n'importe quelle connexion lente
refernce .
REMARQUE: il s'agit d'une solution de contournement que j'ai trouvée en 2013.
Supprimez les fichiers jQuery liés à distance, tels que: https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
Au lieu de cela, téléchargez ce fichier et chargez-le à partir de votre dossier js local, en créant l'URI:
js/jquery.min.js
Supprimez les scripts externes dans votre index.html
Change ça:
<script src="http://code.highcharts.com/highcharts-more.js"></script>
à
<script src="project_folder/highcharts-more.js"></script>
J'ai eu un problème similaire et sur la base des suggestions ci-dessus, j'ai d'abord ajouté "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000);" mais cela n'a pas aidé. J'ai donc essayé Project -> Clean, cela a fonctionné et je peux lancer l'application maintenant!
Avinash ...
Essaye ça,
1. Renommez votre index.html en “main.html”
2.Créez un nouveau “index.html” et mettez-y le contenu suivant:
<!doctype html> <html> <head> <title>tittle</title> <script> window.location='./main.html'; </script> <body> </body> </html>
3. Recréez votre application! Plus d'erreurs!
L'extension du délai de chargement limite ne résoudra pas le problème qui a causé l'erreur, cela évitera simplement au système d'afficher le message, mais les performances en seront affectées.
Raison réelle: vous pouvez lier des fichiers ou des images à des emplacements distants et le chargement de ces ressources prend trop de temps. (c'est probablement l'erreur la plus courante)
Solution définitive: déplacez tous les scripts, images et css nécessaires dans des dossiers locaux et chargez-les localement ...
Les performances augmenteront et les erreurs seront efficacement résolues.
J'ai eu le même sur mon projet.
J'ai essayé "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000);" mais en vain.
Je me suis assuré que tous les fichiers étaient correctement liés [fichiers CSS, JS, etc.], j'ai validé le code HTML à l'aide du validateur w3c [ http://validator.w3.org/#validate_by_upload ] et j'ai nettoyé le projet [Projet - > Nettoyer]
Il charge maintenant et s'exécute sans la même erreur.
J'espère que cela t'aides
Vérifiez votre fichier index.html
. Si vous utilisez des ressources externes qui ne sont pas disponibles lorsque vous exécutez une application, vous pouvez obtenir cette erreur.
Dans mon cas, j'ai oublié de supprimer le lien sur le script de débogage (weinre).
<script src="http://192.168.0.102:8080/target/target-script-min.js#anonymous"></script>
Donc, l'application a fonctionné sur l'émulateur parce que http://192.168.0.102:8080/
était sur mon hôte local et disponible pour l'émulateur.
Mais lorsque j'ai installé l'application sur un téléphone portable, j'ai eu la même erreur, car 192.168.0.102 n'était pas disponible à partir du réseau mobile.
en fixant ceci sur une application ionic, ajoutez simplement
<preference name="loadUrlTimeoutValue" value="700000" />
dans votre fichier config.xml immédiatement après cette ligne
<platform name="Android">
Si vous utilisez Visual Studio. Après avoir modifié le fichier config.xml, vous en avez parfois besoin
solution de construction propre reconstruire votre application
Ça marche pour moi.
Pour mon cas, le problème était dû à la perte de la connexion Internet dans mon réseau WiFi.
Je faisais face au même problème. J'ai remarqué que dans mon index, les fonctions "on device ready" et "document.ready" étaient remplacées. Supprimer l'un d'eux a donc résolu mon problème :)
Dans mon cas, j'utilise ionic et je ferme simplement la boîte de dialogue qui va aux applications de l'émulateur et exécute mon application à partir de là. Cela a fonctionné. J'en ai eu l'idée ici car il ne s'agissait que d'un problème de temps mort.