2016-04-22 2 views
1

J'ai une application Android que j'ai écrite dans Haxe qui utilise openfl.net.URLLoader pour récupérer le JSON pour un tableau (c'est un jeu et les meilleurs scores sont stockés sur un serveur web). J'utilise FlashDevelop 5.1.1.1 pour l'IDE.Impossible de faire fonctionner OpenFL URLLoader sur Android (fonctionne bien avec Haxe/Neko)

Lorsque je compile l'application vers Neko, elle fonctionne correctement et ne génère aucun problème avec la chaîne JSON du serveur Web.

Lorsque je compile sur Android et l'installe sur mon téléphone, il ne contacte jamais le serveur Web. J'ai le webserver m'avertir quand n'importe quelle page est chargée, ainsi je sais que le serveur n'est jamais atteint du tout par l'application d'Android.

L'application a l'autorisation INTERNET, tel que spécifié dans le project.xml:

qui est vraiment redondant mais puisque je suis également en utilisant l'extension d'achat In-App pour openfl (extension.iap. IAP), qui ajoute automatiquement l'autorisation INTERNET (et fonctionne très bien).

Pour être complet, voici le code:

var urll:URLLoader = new openfl.net.URLLoader(); 
urll.addEventListener(Event.COMPLETE, function(e:Event){ 
    // Parses JSON result here -- this code is never reached. 
} 
urll.load(new URLRequest("http://example.com/?action=highscores")); 

J'ai aussi essayé d'utiliser haxe.Http.requestUrl, qui fonctionne parfaitement dans Neko, je reçois une erreur "handle de socket non valide".

Des idées sur ce qui me manque? Encore une fois, fonctionne parfaitement dans Neko, ne parvient pas à récupérer la page sur Android.

Merci d'avance!

Répondre

1

Que faire si à la place de la variable locale var urll: URLLoader utiliser le membre de classe, et supprimer la fonction anonyme? Ou comme utilisation alternative haxe.Http

+0

Comme je l'ai dit dans la question, haxe.Http se bloque avec une erreur "handle de socket invalide". Quant aux autres suggestions, pouvez-vous être plus clair? Tous les exemples que j'ai vu posté partout utilisent une variable locale et certains utilisent une fonction anonyme. Et comme je l'ai dit, ça fonctionne très bien dans Neko, juste pas Android. Je vais essayer de supprimer la fonction anonyme juste au cas où cela a quelque chose à voir avec ça. –

+0

L'utilisation d'une fonction anonyme n'a pas eu d'effet. Fonctionne toujours bien dans Neko, échoue toujours dans Android. –

+0

J'ai réalisé ce que vous vouliez dire à propos de l'utilisation d'un membre de la classe, donc je suis passé à cela à la place d'une variable locale, mais cela n'a eu aucun effet sur Android non plus. –