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 :

Installation de l'application sur mon téléphone : dossier manquant


Sujet :

Android

  1. #1
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut Installation de l'application sur mon téléphone : dossier manquant
    Bonjour,
    Voilà, mon application semble marcher en émulateur, je voulais la tester sur mon portable. C'est un truc minuscule mais qui demande la sauvegarde d'une liste, que j'ai fait par l'intermédiaire d'un objectOutputStream (et input) respectivement dans le onStart() et le onStop().
    Soucis : mon fichier, je l'ai mis dans com.blabla.monappli/monfichier.
    Et quand j'installer mon appli (via le gestionnaire de fichier ASTRO), quand je vais dans adroid/data/ je ne trouve pas mon dossier com.blabla.monappli. Est-ce qu'il me manque une étape d'installation ?

    Merci d'avance ^^
    Expert en recherche google caféinomane

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Non.

    Les répertoires des applications sont des dossiers cachés inaccessibles sans être root. Il est donc normal de ne pas les voir sur un véritable terminal. Les émulateurs, quant à eux, étant en mode développeur, il est normal de les voir.

    Je te suggère de changer ton code avec les primitives Context#openFileInput et Context#openFileOutput, ça te mâchera le boulot niveau chemin.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Merci beaucoup
    J'utilisais bien ces deux fonctions, mais pas convablement, j'avais mis le chemin complet (d'ou le soucis de séparateur que j'ai oublié de mentionner).
    Du coup je me pose la question : pourquoi ces dossiers sensé être caché ne le sont pas pour tous ? Serait-ce parce que certaines de mes applications sont sur ma carte SD (et donc disponible pour tout le monde) ?
    Expert en recherche google caféinomane

  4. #4
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Mmmh....
    J'avais oublié de le mettre en résolu, j'ai eu du nez parce qu'il y a un soucis qui vient de s'installer.

    Jusqu'alors, ça marchait, dans les grandes lignes, sauf l'enregistrement à l'arrêt et le déploiement des données au démarrage.
    Soucis : sans rien avoir touché, ma liste ne s'update pas à l'ajout d'un élément, et ce même si l'élément est ajouté au démarrage avant la liaison avec l'adapter. De ce que j'ai pu comprendre, le soucis viendrait du notifydatasetchanged (ma fonction update s'active une fois correctement avec ma liste modifié, puis une autre fois, sans raison, avec une liste vide) ou alors du getView qui ne s'active pas. (d'après le débug, et tout et tout).
    Je rappelle que mis a part onstart et onstop, rien n'a changé.
    Expert en recherche google caféinomane

  5. #5
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    ...
    Bon ba j'ai compris en mettant un Breakpoint au bon endroit.
    C'est parce que Onstart est appelé quand je reviens sur mon activity principale, même si on est dans le même programme, ça me semble pas classe mais bon, du coup j'ai plus qu'à mettre la partie ouverture sur onCreate ... ^^'
    Expert en recherche google caféinomane

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Pour une activité:

    onCreate = création de l'activité / onDestroy
    onStart = activité visible (pas forcément au premier plan) / onStop
    onResume = activité au premier plan / onPause

    Voilà pourquoi en général les loading sont initialisé dans le onCreate (attention, normalement ils doivent être fait dans des threads à part), et "unloaded" dans le onDestroy
    Les animations et autres jolis truc graphiques dans le onStart (avant pas la peine, on ne voit pas l'activité), et arrêtés dans le onStop.
    Les "hooks" systèmes du genre GPS et autres, dans le onResume (et release dans le onPause).

    C'est la base du cycle de vie d'une activité: http://developer.android.com/guide/c...html#Lifecycle
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Merci beaucoup, ça m'éclaire.
    A vrai dire, la documentation est flou, trop peu expliqué à mon gout. Pour moi onStart s'activait quand on revenait sur l'application, donc que l'activité soit caché par une autre activité de la même application ne me paraissait pas une circonstance suffisante.
    J'avais ce schéma en tête :
    onCreate : création de l'application, dès lors, elle est visible quand on regarde le gestionnaire d'application (chez moi rester longtemps appuyé sur la touche centrale en dessous de l'écran)
    onStart : l'application est visible, quelque soit l'activité
    onResume : on revient à l'activité cible.

    Mais tu m'as montré clairement mon erreur d'interprétation, merci beaucoup ^^
    Expert en recherche google caféinomane

  8. #8
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut


    Je reviens, vite. J'ai installé mon appli sur mon portable (même méthode qu'exprimé au dessus). Et depuis l'autre fois, aucun changement :
    L'appli fonctionne normalement dans le cadre d'une activité normale, j'arrive a incrémenter la liste, aucun retour à 0 si on reste dessus.
    Mais, quand je quitte l'application par la flèche de retour (bouton en bas à droite pour moi), les données sont réinitialisés (comme si ça n'enregistrait pas mais que ça chargeait quand même, bref, une liste vide), quand je quitte l'appli avec le bouton "Home" (du milieu), les données restent tant que je ne décharge pas l'appli, quand je quitte l'appli, les données disparaissent, quelque que soit la méthode...

    Je ne sais pas si ça a un rapport avec le fait que je sauvegarde sur onStop (au contraire, ça devrait sauver plus souvent), ou avec le fait que j'utilise une méthode différente du store pour l'installation. Dans tout les cas, j'ai un soucis persistant.
    Expert en recherche google caféinomane

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    La il faudrait voir un peu plus de code (onCreate/onStart/onResume/onPause/onStop/onDestroy)

    onStop est effectivement l'endroit ou coller la sauvegarde.

    Dans le cas du bouton home, la plupart du temps (avec un téléphone pas trop surchargé donc), si on regarde bien le schema de google on va repasser par onStart sans passer par onCreate.
    Dans le cas du bouton back, on quitte l'activité définitivement (l'application reste "chargée" en RAM), cad onDestroy est appelée... Relancer l'application va passer dans le onCreate.

    Donc quelque chose me dit, qu'un truc dans le onCreate réinitialise les données (ou ne les charge pas correctement).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Je ne suis pas devant un PC tout de suite.
    Demain j'essaye de voir d'où provient le soucis. Si effectivement ça vient du onCreate. Alors ça signifie qu'il ne charge pas le bon ou pas de fichier du tout au demarrage ...
    Expert en recherche google caféinomane

  11. #11
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    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
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mylist = (ListView) findViewById(R.id.mylist);
    		try {
    			FileInputStream fis = openFileInput("monfichier.bin");
    			ObjectInputStream oi = new ObjectInputStream(fis);
    	        Manga = (List<ItemManga>) oi.readObject();
    	        oi.close();
    	        fis.close();
    		} catch(Exception e){
    			Log.e("InternalStorage", e.getMessage());
    			Manga.add(new ItemManga("bla"));
    		}
            MyAdapter Myadapter = new MyAdapter(this, Manga);
            mylist.setAdapter(Myadapter);
        }
    Bonjour,

    L'exception est toujours levé, le soucis est lié visiblement au parsing de ma liste... Je ne sais pas trop comment réussir :/
    Expert en recherche google caféinomane

  12. #12
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Bon ba encore une fois, un petit truc qui grip le système. Le soucis était simple : ma class d'objet n'était pas étendu en serializable u_u, soucis réglé et beaucoup de temps perdu sur le résultat de mon manque de pratique en java (deux ans sans y toucher).
    Expert en recherche google caféinomane

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/05/2015, 19h48
  2. Réponses: 17
    Dernier message: 03/02/2012, 10h00
  3. Installer sa propre application sur le téléphone
    Par sebblo dans le forum Windows Phone
    Réponses: 2
    Dernier message: 23/05/2011, 15h29
  4. [VB Studio]Installation d'une application sur un autre poste
    Par Yolak dans le forum Windows Forms
    Réponses: 18
    Dernier message: 15/06/2007, 14h46
  5. Réponses: 3
    Dernier message: 26/02/2007, 11h31

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