Ich verwende internalDataPath in meinem Native die, wenn sie zur Laufzeit zugegriffen sieht ungefähr so aus:Android NDK internalDataPath - Schreiben in die Datei
"/data/data/app.name/files"
Ich versuche dann, wie so in die Datei zu schreiben:
In diesem Fall wird die Fopen fehlschlagen und wird nicht öffnen Sie die Datei, die realistisch bedeutet, dass die anderen Funktionen nicht aufgerufen werden, experimentierte ich mit Blick auf das Dateisystem und ich Stattdessen versuchte es den folgenden Pfad.
Dies funktioniert, erstellt die Datei und ermöglicht es den anderen Funktionen, die Datei zu schreiben und zu schließen.
Meine Frage ist, wie kommt internalDataPath beginnt mit /data/ statt /Android/? Habe ich bei der Einrichtung meiner Anwendung etwas falsch gemacht? Soll ich eine andere Funktion aufrufen?
Es ist auch erwähnenswert, dass
externalDataPath = "/storage/emulated/0/Android/data/app.name/files"
was bedeutet, dass für dieses Gerät (die keine externe SD hat) es auf den richtigen internen Dateien Pfad verweist.
Lassen Sie mich wissen, wenn etwas davon unklar ist oder Sie weitere Informationen benötigen.
Dank
Welche Geräte und Version ist das?Ich habe nicht den 'Android'-Ort, nur' Daten 'an der Wurzel und das wird von' internalDataPath' zurückgegeben, also funktioniert 'fopen' in einem ähnlichen Beispiel gut für mich. –
Gerät: Nexus 7 Tablet (2012) Version: Android 5.1.1 (LMY47V) Es ist mein Entwicklungsgerät, so dass es eine angemessene Anzahl von Blitzen und Wurzeln usw. gesehen hat, so vielleicht ist es gerade in einen gebrochenen Zustand geraten ... Mein Galaxy S6 auf Android 6 scheint sowohl den Ordner "Android" als auch den Ordner "data" im Pfad "/ storage/emulated/0" zu haben. – Maddius
Ich habe es auf Nexus 7 2013 mit Android 6.0.1 getestet. Ich bin mir nicht sicher, was dazu führen könnte, dass die 'internalDataPath'-Variable auf einen ungültigen Pfad verweist. Hast du schon versucht, einen Werksreset durchzuführen? –