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 :

Accès à une ressource


Sujet :

Android

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 86
    Points : 49
    Points
    49
    Par défaut Accès à une ressource
    Bonjour,

    Souhaitant porter une application Java sous Androïd, je suis confronté au problème suivant :

    Mon activity instancie une classe "100% java". Cette dernière doit accéder à un fichier contenu dans le ".jar / .apk".

    En java pur, j'utilisais : getClass().getResourceAsStream(fichier)
    Cela ne fonctionne pas sous Android, et après consultation de la doc, je trouve getResources().openRawResource(id) qui semble correspondre. Seulement je ne peux pas utiliser ce code dans ma classe qui n'est pas une 'activity' ....

    Pourriez-vous me dépanner SVP ?

    Merci

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 106
    Points
    106
    Par défaut
    En fait je croix que tu peux utiliser, au moins, getClass().getClassLoader().getResourceAsStream(file); je l'utilises moi-même et il fonctionne bien. Et-tu certain que ton ressource est sur le classpath?

    Sinon, pour utiliser getResources().openRawResource(id) tu as raison, il faut un instance d'un Context (soit ApplicationContext ou Activity). Est-ce que tu peux passer un Context à ton Java l'applicationContext dans son constructeur ou un méthods et faire quelque chose comme ça?

    inputStream=context.getResources().openRawResource(id);

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 86
    Points : 49
    Points
    49
    Par défaut
    Merci pour ta réponse,

    Je laisse pour le moment le côté "feinte" pour pouvoir utiliser openRawResource.

    Pour en revenir au problème avec getClass().getResourceAsStream() , l'execution ne lève pas d'exception, par contre le InputStream renvoyé est null.

    En recherchant sur le net, je suis tombé la dessus :
    http://code.google.com/p/android/issues/detail?id=10076

    Ca correspond tout à fait à mon problème ... malheureusement mon niveau débutant ne me permet pas de comprendre la solution (car visiblement il y en a une).

    Merci pour votre aide. (Pour info je suis sous Eclipse)

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 106
    Points
    106
    Par défaut
    Je trouve ce bug un peu étonnant - je n'ai pas de tout de problème avec des ressources dans le classpath. Je peux seulement imaginer que c'est limité à Netbeans.

    As-tu vérifier que ton ressource est bien dans l'apk? Pour l'ouvrir, il ne faut que changer l'extension à .zip et utiliser une application comme winrar.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 86
    Points : 49
    Points
    49
    Par défaut
    J'ai bien vérifié ... les ressources sont bien présentes dans le .apk.

    Par contre bonne nouvelle, j'ai "résolu" le problème :
    -> getClass().getClassLoader().getResourceAsStream() renvoie 'null' (alors que çà marche bien en Java pur).
    -> getClass().getResourceAsStream() fonctionne ...

    Aucune idée du pourquoi ou du comment, çà dépasse mes compétences ;-)
    Si quelqu'un tombe là-dessus et qu'il a une explication je suis preneur.

    Merci pour ton aide

Discussions similaires

  1. Accès à une ressource serveur
    Par flotho dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 29/10/2009, 17h57
  2. Accès à une ressource dans un plugin
    Par hodac dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 21/10/2009, 13h37
  3. Tomcat 6 - Accès à une ressource interdit
    Par esteban dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 24/03/2009, 00h28
  4. Limiter l'accès à une ressource pour x mois
    Par marcha dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2009, 14h36
  5. Accès à une ressource ?
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/03/2004, 16h29

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