Erreur d'Application - La connexion au serveur a échoué. (fichier: / / / Android asset / www / index.HTML)
L'application meurt au démarrage (la connexion au serveur a échoué)
J'ai une application Android que j'écris en utilisant PhoneGap BUILD. L'application fonctionnait bien plus tôt, mais maintenant il semble que je reçois cette erreur après avoir affiné mon application (quelques modifications de L'interface utilisateur seulement)
1) Lorsque je démarre 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 c'est une duplication de toute question. J'ai vu quelques questions similaires ici, mais je n'ai pas pu trouver une réponse ou une solution parfaite. Comme dans mon cas, cela fonctionnait bien jusqu'à mes derniers changements.
14 réponses
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'attente pour appeler votre index.html
C'est à dire vous devez ajouter super.setIntegerProperty("loadUrlTimeoutValue", 70000);
dans votre activité.fichier 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 la émulateur de sorte que le réseau est trop lent compléter la communication en temps opportun.
Cela peut être dû à:
- votre code / Données / image est trop grand ( je suppose que dans votre cas, vous utilisez des images, comme vous avez dit que vous avez apporté des modifications à l'interface utilisateur, peut-être que la taille des images est élevée)
- votre script peut avoir une boucle infinie ou longue, de sorte qu'il prend trop de temps à charger.
- Vous utiliserez trop de scripts (jQuery, iscroll, etc etc.. plus le nombre de plugins ou de scripts)
Dans votre configuration.fichier xml ajouter cette ligne:
<preference name="loadUrlTimeoutValue" value="700000" />
Voici la solution de travail
Créer une nouvelle page principale.html
Exemple:
<!doctype html>
<html>
<head>
<title>tittle</title>
<script>
window.location='./index.html';
</script>
</head>
<body>
</body>
</html>
Modifiez 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 toute connexion lente
Remarque: c'est une solution de contournement que j'ai trouvée en 2013.
Veuillez supprimer 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 faisant L'URI:
js/jquery.min.js
Supprimez les scripts externes dans votre index.html
Changez ceci:
<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...
Essayez ceci,
1.Renommez votre index.code html pour principal".html "
2.Créer un nouvel index".html " et y mettre le contenu suivant:
<!doctype html> <html> <head> <title>tittle</title> <script> window.location='./main.html'; </script> <body> </body> </html>
3.Reconstruisez votre application! Plus d'erreurs!
J'ai eu la même chose sur mon projet.
J'ai essayé " super.setIntegerProperty ("loadUrlTimeoutValue", 70000); " mais en vain.
Je me suis assuré que tous les fichiers étaient liés correctement [ CSS, fichiers JS etc ], validé le HTML en utilisant le validateur w3c [ http://validator.w3.org/#validate_by_upload ], et nettoyé le projet [Project - > Clean]
Il se charge et s'exécute maintenant sans la même erreur.
J'espère que cela aide
L'extension de la limite de délai de chargement ne résoudra pas le problème qui a causé l'erreur, il évitera simplement au système d'afficher le message, mais les performances seront affectées.
Raison réelle: vous pouvez lier des fichiers ou des images à des emplacements distants, et ces ressources prennent trop de temps à charger. (c'est probablement l'erreur la plus commune)
Solution définitive: déplacez tous les scripts, images et css nécessaires dans certains dossiers locaux et chargez-les localement ...
La Performance sera augmentée et l'erreur sera effectivement résolue.
Vérifiez votre fichier index.html
. Si vous utilisez des ressources externes, qui ne sont pas disponibles lorsque vous exécutez l'application, alors vous pouvez obtenir cette erreur.
Dans mon cas, j'ai oublié de supprimer le lien sur le script du débogueur (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 localhost et disponible pour l'émulateur.
Mais quand j'ai configuré l'application sur un téléphone mobile, j'ai eu la même erreur, car 192.168.0.102 n'était pas disponible à partir du réseau mobile.
Dans mon cas, j'utilise ionic et j'ai simplement fermé la boîte de dialogue est allée aux applications dans l'émulateur et a couru mon application à partir de là à la place. Cela a fonctionné. J'ai eu l'idée de cela d'ici puisque c'était juste un problème de temps mort.
Si vous utilisez visual studio. Après avoir changé la configuration.xml parfois, vous avez besoin de ceci
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 WiFi.
Une autre raison pour laquelle cette erreur peut se produire est: il n'y a pas de index.html
dans .../YourApp/www/
!
J'ai simplement suivi l'ionique guide, et l'une des étapes est:
$ rm www/index.html
Sur iOS, ce n'est pas un problème car pendant la construction, le compilateur prend du HTML par défaut à la place. Cependant, lors de la construction pour android, aucun exemple index.html
n'est utilisé. Il m'a fallu du temps pour le savoir ("pourquoi ça marche sur iOS, mais pas sur android...?)
Solution facile: Créer un index.html, enregistrez-le sous .../YourApp/www
, reconstruire ...et voila!