Android 2.2 und "Schlechte Adresse Familie" auf Socket Connect

8

Ich habe ein ziemlich einfaches Spiel, das auf jeder Version bis Version 2.1 perfekt funktioniert, aber mit der neuen Version 2.2 (Froyo) kann ich keinen Socket erstellen. Ich verwende das Mina-Paket für Nio und bekomme diese Ausnahme:

  

W / System.err (263): java.net.SocketException: Schlechte Adressfamilie   W / System.err (263): at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl (systemeigene Methode)   W / System.err (263): at org.apache.harmony.luni.platform.OSNetworkSystem.connect (OSNetworkSystem.java:115)   W / System.err (263): at org.apache.harmony.nio.internal.SocketChannelImpl.connect (SocketChannelImpl.java:272)   W / System.err (263): unter org.apache.harmony.nio.internal.PipeImpl $ SinkChannelImpl.finishConnect (PipeImpl.java:164)   W / System.err (263): at org.apache.harmony.nio.internal.PipeImpl. (PipeImpl.java:48)   W / System.err (263): at org.apache.harmony.nio.internal.SelectorProviderImpl.openPipe (SelectorProviderImpl.java:51)   W / System.err (263): at org.apache.harmony.nio.internal.SelectorImpl. (SelectorImpl.java:141)   W / System.err (263): at org.apache.harmony.nio.internal.SelectorProviderImpl.openSelector (SelectorProviderImpl.java:58)   W / System.err (263): at java.nio.channels.Selector.open (Selector.java:48)   W / System.err (263): bei org.apache.mina.transport.socket.nio.SocketConnector.startupWorker (SocketConnector.java:248)   W / System.err (263): at org.apache.mina.transport.socket.nio.SocketConnector.connect (SocketConnector.java:210)   W / System.err (263): at org.apache.mina.transport.socket.nio.SocketConnector.connect (SocketConnector.java:137)   W / System.err (263): at org.apache.mina.common.support.BaseIoConnector.connect (BaseIoConnector.java:40)

Später in dem Protokoll, normalerweise unmittelbar folgend, bekomme ich folgendes:

  

W / System.err (263): java.lang.NullPointerException   W / System.err (263): at org.apache.harmony.nio.internal.SelectorImpl.wakeup (SelectorImpl.java:418)   W / System.err (263): at org.apache.mina.transport.socket.nio.SocketConnector.connect (SocketConnector.java:222)   W / System.err (263): at org.apache.mina.transport.socket.nio.SocketConnector.connect (SocketConnector.java:137)   W / System.err (263): at org.apache.mina.common.support.BaseIoConnector.connect (BaseIoConnector.java:40)

Ich habe alles gegoogelt und mich umgesehen und kann nichts finden. Der nächste, den ich je gesehen habe, scheint ein alter JDK-Bug mit ipv6-Unterstützung auf XP- und Vista-Rechnern zu sein (ich betreibe Vista). Die Empfehlungen beinhalteten die Deaktivierung von ipv6 (das nicht funktionierte) und die Deaktivierung von ipv4 und das Verlassen von ipv6 (funktioniert nicht für mich, da mein Router und ISP es nicht unterstützen und daher sowieso nicht testen konnten).

Irgendwelche Gedanken, Vorschläge, Dinge, die ich nicht versucht habe?

Danke, Josh

    
Josh 21.05.2010, 03:52
quelle

3 Antworten

5

Dies war ein Fehler und wurde behoben: Ссылка

Sie sollten sehr vorsichtig mit der Problemumgehung java.net.preferIPv6Addresses sein, da es Geräte und Netzwerke gibt, in denen Sie IPv6 haben möchten.

(und, wie das Original-Poster herausgefunden hat, wenn Sie können io anstelle von nio verwenden, sollten Sie im Allgemeinen .)

    
Elliott Hughes 18.08.2010, 06:10
quelle
15

Danke an Josh ... Ich könnte das undswewer für dieses Problem über den Link oben

bekommen

Verwenden Sie diesen Code vor dem Öffnen eines Selectors

== & gt; System.setProperty ("java.net.preferIPv6Addresses", "false");

Ich kann das Problem bestehen ...

    
gustyJin 12.07.2010 04:34
quelle
0

Ja, Sie haben Recht. Ich postete dieses Problem in Google Groups und der Kommentar lautete: "Der Emulator unterstützt IPv6 nicht". Hier ist der Link Ссылка

Weißt du, warum die Anwendung denkt, dass ihr Gerät iPv6 unterstützen kann oder nicht? Ich denke, dass Java-Anwendungsprogrammierer das nicht wissen müssen.

    
rednos 02.07.2010 02:33
quelle

Tags und Links