web-dev-qa-db-fra.com

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 à 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.

150
user1654414

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û à:

  1. Votre code/données/image est trop volumineux (je suppose que dans votre cas, vous utilisez des images, comme vous avez dit avoir fait quelques modifications de l'interface utilisateur, la taille des images peut être élevée)
  2. Votre script peut avoir une boucle infinie ou longue, de sorte que le chargement prend trop de temps.
  3. Vous allez utiliser trop de scripts (jQuery, iscroll, etc., etc. plus de plugins ou de scripts)
70
AnhSirk Dasarp

Dans votre fichier config.xml, ajoutez cette ligne:

<preference name="loadUrlTimeoutValue" value="700000" />
177
Soufiene

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.

24
Robin C Samuel

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

9
sharma_kunal

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>
6
Raugaral

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 ...

5
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!

5
Nithin Krishnan P

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.

4
jjyepez

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

4
Deano

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.

3
Alexey Muravyov

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">
2

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.

1
caglabaran

Pour mon cas, le problème était dû à la perte de la connexion Internet dans mon réseau WiFi.

1
Chong Lip Phang

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 :)

1
Abir.d

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.

1
FernandoZ