2010-10-29 2 views

Répondre

5

Je ne pense pas que vous pouvez utiliser SnakeYaml sur Android sans modifications (au moins maintenant).

Par défaut, SnakeYaml utilise Introspector pour obtenir PropertyDescriptors pour les classes, et comme je peux le voir java.beans.Introspector n'est pas disponible sur Android. Mais il y a le mode BeanAccess.FEILD dans SnakeYaml qui utilise des champs pour exporter/charger des beans. Ce mode utilise uniquement les classes java.lang.reflect disponibles sur Android. Donc, avec quelques modifications, cela pourrait fonctionner. Mais j'ai besoin de l'essayer pour être sûr.

Ajouté

version compatible maintenant android de SnakeYaml peut être construit en utilisant:

mvn -Pandroid clean package

mise à jour (Mars 2017):

A partir de 1.18 build android est en central. Vous pouvez ajouter une dépendance dans votre pom.xml comme ceci

<dependency> 
    <groupId>org.yaml</groupId> 
    <artifactId>snakeyaml</artifactId> 
    <version> VERSION </version> 
    <classifier>android</classifier> 
</dependency> 
+0

Merci. C'est utile de savoir. Si vous l'essayez, veuillez nous mettre à jour ici. Je vais attendre que vous l'essayiez d'abord parce que je commence avec zéro expérience. – MountainX

+1

Oui. Il n'a pas construit sans modifications. Mais ... celui-ci devrait fonctionner: http://code.google.com/p/snakeyaml/downloads/detail?name=snakeyaml-android-1.8-SNAPSHOT.jar Rappelez-vous qu'il utilise des champs sur les classes, pas des setters et des getters! !! Quel que soit le mode 'BeanAccess.xxx' que vous avez défini, il s'agit toujours de' BeanAccess.FIELD'. Essayez-le. J'ai créé un problème concernant Android http://code.google.com/p/snakeyaml/issues/detail?id=92 N'hésitez pas à y ajouter des commentaires. – maslovalex

+0

Merci d'avoir rendu cette version modifiée disponible! – MountainX

0

Je pense que vous devriez au moins essayer directement snakeyaml. Pour ce type de bibliothèque, il est très probable que l'ensemble d'API Java requis soit disponible sur Android.

Si cela ne fonctionne pas, vous pouvez essayer d'importer le code source snakeyaml dans un projet android et voir ce qui ne compile pas. Avec un peu de chance, il sera possible de contourner les API manquantes.

+0

Merci pour vos encouragements. Avec mon expérience limitée (pas encore de développement Android), j'espérais que quelqu'un d'autre aurait déjà essayé ça. Mais j'aime bien snakeyaml, donc ce serait génial si ça marche sur Android. – MountainX

Questions connexes