File Explorer zeigt meine App nicht an

  • 9 Antworten
  • Letztes Antwortdatum
B

BlupBlup

Ambitioniertes Mitglied
1
Hi,

ich verwende das Eclipse Plugin ADT zur Entwicklung von Android Apps.

Unter Window -> Show View -> File Explorer
kann man den FileExplore in Eclipse anzeigen lassen, der das Dateisystem
des Smartphones zeigt, sobald man das Smartphone über USB an den Rechner anschließt.

Meine App mit dem Namen "myTestApp" wird dort allerdings nicht aufgelistet, obwohl sie auf dem Smartphone läuft.

Meine App nimmt eine Video Datei über einen Socket entgegen und speichert diese im Anwendungsverzeichnis files der App.
Über den LogCat Befehl:

Log.d("MainActivity", "getFilesDir(): " + file.getAbsolutePath());

lasse ich mir sogar das Verzeichnis ausgeben in der die Datei nach Ausführung der App abgelegt wird:

Als Ausgabe erhalte ich:
getFilesDir(): /data/data/com.example.myTestApp/files/empfangenesVideo3.mp4

Und wenn ich mir auf dem Smartphone unter
Einstellungen -> Anwendungen -> myTestApp
die Infos zu meiner App nach Ausführung anschaue steht da:
App 684 KB
Daten 25.03 MB

das Video, dass ich über den Socket empfange ist auch 25.03 MB groß also ist alles da.

Wo finde ich im File Explorer nun meine App?
Oder wieso ist sie nicht zu sehen?
Hab mich schon fast durch das komplette Dateisystem durchgeklickt.
Vermutet habe ich die App in:

mnt/sdcard/Android/data/

allerdings ist sie da nicht zu sehen.

Hat jemand eine Idee?
 
Das lässt nur den Schluss zu das die App nicht auf der SD karte ist. Ich habe meine App auch mal auf der SD-Karte gesucht und auch nicht gefunden. Im internen Speicher gibt es den Dev bereich, aber da ist wenig mit Klar namen zu finden. könnte mir aber vorstellen das sich dort die Apps verstecken. Nur eine Idee.
 
  • Danke
Reaktionen: BlupBlup
Sollte schon /data/data/com.example... sein.

Eclipse geht auch sicher hoch bis / ? Oder listet der nur den Inhalt der SD-Karte?
Geh doch mal in einem File Explorer am Handy (zB ES Datei Manager) zu /data/data und schau ob du sie so findest.

Greets,
Max
 
  • Danke
Reaktionen: BlupBlup
File meineDatei = File.createTempFile("empfangenesVideo3", ".mp4");

führt dazu, dass meine empfangene Datei im Verzeichnis mnt/sdcard/ abgelegt wird.
Im FileExplorer wird die Datei dann auch tatsächlich dort angezeigt.

Darüber hinaus habe ich mir einen FileManager aus dem Play Store runtergeladen und auch dort sehe ich die Datei.

Log.d("MainActivity", "getFilesDir(): " + meineDatei.getAbsolutePath());
liefert mir in der LogCat als Ausgabe:
/sdcard/empfangenesVideo3.mp4

Somit gehe ich davon aus, dass das Ausgangsverzeichnis mnt ist,
da unter mnt das Verzeichnis sdcard liegt.


Verwende ich zum speichern der Datei aber:
File meineDatei = new File(this.getFilesDir(), "empfangenesVideo3.mp4");
so wird die Datei im Anwendungsverzeichnis der App im Ordner files abgelegt.


Log.d("MainActivity", "getFilesDir(): " + meine.getAbsolutePath());
liefert mir als Ausgabe:
getFilesDir(): /data/data/com.example.myTestApp/files/empfangenesVideo3.mp4

Da ich mittlerweile, auf Grund der LogCat Ausgaben, vermute, dass das Ausgangsverzeichnis immer mnt ist müsste ich meine App im FileExplorer hier finden:
mnt/data/data/com.example.myTestApp

Allerdings seh ich im FileExplorer im Verzeichnis mnt kein Unterverzeichnis data.
Ist meine Annahme also falsch, dass mnt das Ausgangsverzeichnis ist?

Ich kann aber zu 100% Sicherheit sagen, dass sich die Datei wirklich auf dem Smartphone befindet. Habe sie mir nämlich vom Smartphone an meinen Rechner über eine Socketverbindung auch wieder zurückschicken lassen um dies zu überprüfen.

Eclipse listet mir im FileExplorer unter anderem diese Dateien auf:
acct
cache
...
...
data (Der Ordner ist leer)
...
mnt (Kein Untverzeichnis data vorhanden)
|-> asec
|-> obb
|-> sdcard

Auch mit der FileManager App auf meinem Smartphone ist nirgends /data/data/com.example.myTestApp zu finden.

Alles irgendwie seltsam:
Ich habe das Buch Android 2 von Arno Becker
und das Buch Android 4 Apps entwickeln mit dem Android SDK von Thomas Künneth
und dort sind im Kapitel Dateisystem Screenshots vom FileExplorer zu sehen, welche ihre App zeigen. Also irgendwie muss es funktionieren.
 
  • Danke
Reaktionen: myeta
Wenn du root auf deinem Telefon hast würde ich mal einen Root explorer bemühen.
evtl fehlen sonst Rechte um die Daten sehen zu können.

Das könnte gut sein, dass du im data verzeichnis nix siehst weil dort eigentlich nur die einzelnen Apps Zugriff auf ihr eigenes Verzeichnis haben.
 
BlupBlup schrieb:
Verwende ich zum speichern der Datei aber:
File meineDatei = new File(this.getFilesDir(), "empfangenesVideo3.mp4");
so wird die Datei im Anwendungsverzeichnis der App im Ordner files abgelegt.


Log.d("MainActivity", "getFilesDir(): " + meine.getAbsolutePath());
liefert mir als Ausgabe:
getFilesDir(): /data/data/com.example.myTestApp/files/empfangenesVideo3.mp4

Da ich mittlerweile, auf Grund der LogCat Ausgaben, vermute, dass das Ausgangsverzeichnis immer mnt ist müsste ich meine App im FileExplorer hier finden:
mnt/data/data/com.example.myTestApp

Allerdings seh ich im FileExplorer im Verzeichnis mnt kein Unterverzeichnis data.
Ist meine Annahme also falsch, dass mnt das Ausgangsverzeichnis ist?
Das ist denke ich ein Trugschluss.
Getfilesdir() sollte immer das zurückgeben:
/data/data/<app_package_name>/files/

In Mnt werden weitere Laufwerke eingebunden, die gemountet sind - zB. die SD Karte. Sprich hier sind nur externe Speichermedien.

Des weiteren hat dein file Explorer ggf keine rechte, wie dich amfa schon drauf aufmerksam gemacht hat.
Ich empfehle dir den ES File manager. Hier musst du in den Einstellungen den Root Zugriff aktivieren.

Greets,
Max
 
  • Danke
Reaktionen: BlupBlup
Ich denke du hast recht.
Die Apps sind wahrscheinlich auf Grund mangelnder Rechte oder irgendwelcher Sicherheitsmechanismen für mich im FileExplorer nicht sichtbar.
Zudem denke ich mittlerweile auch, dass die eigenen Apps nicht in

mnt/data/data/<app_package_name>

abgelegt werden, sondern in

/data/data/<app_package_name>

Somit ist das Ausgangverzeichnis immer

/


myeta schrieb:
In Mnt werden weitere Laufwerke eingebunden, die gemountet sind - zB. die SD Karte. Sprich hier sind nur externe Speichermedien.

Zur SD Karte: Ich habe ein Sony Xperia U. Dieses Smartphone hat keinen Slot für eine zusätzliche SD Karte, wodurch die Speichergröße auf 8GB (4 GB frei nutzbar) fest begrenzt und nicht erweiterbar ist.
Dennoch gibt es ein Verzeichnis:

/mnt/sdcard

und dort werden auch Bilder, Videos etc. gespeichert wenn ich meine App
auffordere meine Daten nicht im Anwendungsverzeichnis der App zu speichern,
sondern in:

File meineDatei = File.createTempFile("empfangenesVideo3", ".mp4");

Mein Vermutung ist, dass das Sony Xperia U eine eingebaute nicht herausnehmbare und für den Kunden nicht sichtbare SD Karte im Gerät verbaut hat, die als interner Speicher dient. Ist das richtig?
 
Zuletzt bearbeitet:
Ich vermute da ist keine SD Karte eingebaut, sondern eine Partition des internen SPeichers wird an der Stelle /mnt/sdcard eingebunden, damit es für das System und die Programme so aussieht als gäbe es eine SDKarte

Hat mein Nexus 4 auch.
 
  • Danke
Reaktionen: BlupBlup und myeta
amfa schrieb:
Ich vermute da ist keine SD Karte eingebaut, sondern eine Partition des internen SPeichers wird an der Stelle /mnt/sdcard eingebunden, damit es für das System und die Programme so aussieht als gäbe es eine SDKarte

Hat mein Nexus 4 auch.

Deine Vermutung sollte der Wahrheit entsprechen ;)

Und noch eine kleine Korrektur:
Die DATEN aller (auch System Apps) liegen in /data/data/<Package>,
die eigentlichen (Benutzer-)Apps jedoch in /data/app/*.apk

Greets,
Max
 
  • Danke
Reaktionen: BlupBlup
Danke für die Hilfe
 
Zurück
Oben Unten