IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Chromium : Protocol not available


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut Chromium : Protocol not available
    Bonjour,

    Lors de mes tests, il m'arrive de tomber sur une erreur de Chromium de type :
    E/chromium(24894): external/chromium/net/socket/tcp_client_socket_libevent.cc:60: [0309/203704:ERROR:external/chromium/net/socket/tcp_client_socket_libevent.cc(60)] Failed to set TCP_KEEPIDLE on fd: 76: Protocol not available

    A partir de là, aucune WebView ne peut se connecter à mon serveur, j'ai une erreur ERROR_CONNECT.
    Or, mon serveur est bien debout, je fais des tests de connexion pour m'en assurer dans mon Activity, et il me sert bien les pages que je peux consulter par un browser depuis mon ordi.
    Tout ça m'indique que le problème vient du client web sur mon support android.

    Jusque là, la seule manière de résoudre ce problème et le reboot de ma tablette Android, ou d'attendre. La grande classe, quoi...

    Y-a-t'il un moyen de scanner les sockets client ouverts sous Android afin d'en forcer la fermeture ou bien peut-on récupérer le socket d'une WebView pour essayer de le ré-initialiser ?

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Re,

    J'ai ajouté une trace supplémentaire dans mon WebViewClient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    @Override
    	public void	 onReceivedError(WebView view, int errorCode, String description, String failingUrl)
    	{
    		if ( errorCode == WebViewClient.ERROR_CONNECT && TestLayoutActivity.activity.serverConnecting )
    		{
    			ConnectivityManager connMgr = (ConnectivityManager) TestLayoutActivity.activity.getSystemService(Context.CONNECTIVITY_SERVICE);
    			NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
     
    			NetworkInfo.State networkState = networkInfo.getState();
    			NetworkInfo.DetailedState networkDetailedState = networkInfo.getDetailedState();
     
    			PKLog.e(this, networkDetailedState+" is "+networkState);
    			PKLog.i(this, networkInfo.toString());
    		}
    	. . .
    	}
    L'erreur s'est reproduite aujourd'hui, ce qui me donne

    IDLE is UNKNOWN

    03-24 18:25:02.820: I/PKWebViewClientPages(8067): NetworkInfo: type: ETHERNET[], state: UNKNOWN/IDLE, reason: (unspecified), extra: (none), roaming: false, failover: true, isAvailable: false


    Sous adb shell, netstat m'indique bien que mon serveur est en LISTEN.

    Personne n'aurait une idée lumineuse ?

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Re-re,

    Je tombe à nouveau (sporadiquement) sur le même soucis, et toujours pas de solution clean.

    En faisant quelques autres recherches sur le net et les sockets, je me demande si le fait que mon serveur soit lancé depuis un Activity pourrait être à l'origine de conflits avec les WebView (UIThread <> Threads).

    Du coup, serait-il préférable de lancer mon serveur via un Service ?

    Avis, conseils appréciés...

    KF.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Le problème ne survient plus depuis que j'ai changé quelques lignes de code. J'ai repéré que le soucis se produisait surtout au moment des onPause() et onRestart().

    J'appelle à présent les méthodes onPause() et onResume() des webview. De même je stop mon serveur au onRestart() de l'Activity, il redémarre au onStart() le cas échéant.
    Enfin, l'instance du ServerSocket qui était au niveau de ma classe (Runnable) s'est avéré être une mauvaise idée. Je l'ai re-localisé dans la méthode run() et il est du coup idéalement fermé. Avant ça, je mettais seulement en pause le serveur, mais en voulant forcer l'arrêt complet des threads serveur, je me suis aperçu que ma classe conservait son état car j'avais un BindException au moment du start() du thread.

    A présent c'est ok. Le serveur re-créé un nouveau port à chaque start() ou restart(), signale ce changement (via Observer) et les webview actives récupèrent une nouvelle URL dans la foulé.

    Le mécanisme était un peu compliqué du fait que je voulais absolument des ports non fixes mais attribués par le système à chaque lancement. Aussi, la manière de sauver/restaurer les objets sans qu'on intervienne me trouble beaucoup.

    KF.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. (debutant) The command or action "Find" is not available now
    Par tounepistols dans le forum Access
    Réponses: 7
    Dernier message: 10/08/2006, 15h22
  2. Sendmail et vacation : service not available
    Par Dokho1000 dans le forum Réseau
    Réponses: 1
    Dernier message: 08/06/2006, 11h40
  3. ORA-01034: ORACLE not available
    Par PilExp51 dans le forum Oracle
    Réponses: 1
    Dernier message: 23/03/2006, 17h35
  4. [9i] ORA-01034: ORACLE not available
    Par babeb dans le forum Oracle
    Réponses: 1
    Dernier message: 14/12/2005, 18h20
  5. [10gX64]ORA-01034: ORACLE not available pb d'install
    Par neo.51 dans le forum Connexions aux bases de données
    Réponses: 37
    Dernier message: 30/09/2005, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo