Couldn't create directory for SharedPreferences file

  • Antworten:8
Marcel S.
  • Forum-Beiträge: 120

20.06.2011, 11:46:47 via Website

Hat irgend jemand eine Ahnung was es mit dieser Fehlermeldung auf sich hat???

06-20 11:42:35.553: ERROR/ApplicationContext(1269): Couldn't create directory for SharedPreferences file /dbdata/databases/mma.wallpaper.engine/shared_prefs/engine_settings.xml

Ich finde den Fehler bei der Sache einfach nicht. Aus welchem Grund kann er dieses file/directory nicht anlegen?

Antworten
Stefan S.
  • Forum-Beiträge: 560

20.06.2011, 12:37:32 via Website

Hast du genügend Rechte dafür?
Wo speicherst du das File?

Antworten
Marcel S.
  • Forum-Beiträge: 120

20.06.2011, 13:15:17 via Website

Es geht hierbei lediglich um eine PreferenceActivity in einem Livewallpaper. der Code der Activity sieht dann mal so aus...

1public class MMA_Wallpaper_Settings extends PreferenceActivity
2 implements SharedPreferences.OnSharedPreferenceChangeListener{
3
4 @Override
5 protected void onCreate(Bundle icicle) {
6 super.onCreate(icicle);
7
8 this.getPreferenceManager().setSharedPreferencesName(MMA_Wallpaper_Service.SHARED_PREFS_NAME);
9
10 addPreferencesFromResource(R.xml.wallpaper_settings);
11 getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(
12 this);
13 }
14 @Override
15 protected void onResume() {
16 super.onResume();
17 }
18 @Override
19 protected void onDestroy() {
20 getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(
21 this);
22 super.onDestroy();
23 }
24
25 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
26 String key) {
27 }
28}

SHARED_PREFS_NAME ist in der Klasse definiert die von WallpaperService abgeleitet ist und
Es liegt alles im selben Package...

mir war bisher nicht klar das ich innerhalb der eigenen app noch für Schreibrechte sorgen muss...
zumal die Datei ja vom System erzeugt werden sollte..

Bitte korrigiere mich wenn ich da falsch liege

das seltsame ist das auf einem Samsung keinerlei Auswirkungen zu erkennen sind die Einstellungen werden korrekt übernommen verarbeitet und scheinbar sogar irgendwo gespeichert da sie über den Lebenszeitraum der App hinaus erhalten bleiben. Selbst der Emulator macht keinerlei Anstalten etwas anderes als das erwartete auszugeben, daher ist mir dieses Problem bisher auch nicht aufgefallen.
Allerdings scheinen jetzt einige htc´s etwas sensibler auf diesen Fehler zu reagieren. Vorallem Geräte die jetzt ein 2.3 Update erhalten haben.

Ich bin für jede Hilfe dankbar.

Antworten
Stefan S.
  • Forum-Beiträge: 560

20.06.2011, 13:33:47 via Website

Sorry, ich dachte du wolltest du Prefs selber irgendwo hin speichern. Ich war hier auf dem Holzweg.
Normalerweise musst du keine zusätzlichen Rechte anziehen um die Prefs zu speichern. Da hast du völlig recht.

Antworten
Marcel S.
  • Forum-Beiträge: 120

20.06.2011, 13:41:58 via Website

Schon mal gut zu wissen :)

Hast du sonst irgend eine Idee woran das liegen könnte....

Ich hab sogar das CubeWallpaper nochmal zu rate gezogen :)
Da ist auch alles io aber bei mir taucht der Fehler immer wieder auf.

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

20.06.2011, 23:35:23 via App

Ist das Testgerät eventuell ein Galaxy S?
Lg Ansgar

Antworten
Marcel S.
  • Forum-Beiträge: 120

21.06.2011, 02:39:46 via Website

Ja ist es in dem Fall...?.?

Gibt es da eine Besonderheit???

Antworten
Marcel S.
  • Forum-Beiträge: 120

22.07.2011, 12:53:25 via Website

Ich muss hier mal Pushen.

Ich hab das Problem immer noch nicht in den Griff bekommen.
Gibt es irgend etwas zu beachten das mir bisher nicht bewusst war.

Es kommt nicht häufig vor aber noch haben die einen oder anderen das
Problem das die Prefs auf ihrem Phone nicht gespeichert bzw. übernommen
werden.

Ich glaube das es mit meinem Problem zusammenhängt aber ich
kann es eben nicht nachvollziehen.

Sagen wir ich habe zwei Anwendungen in folgenden Packages

anwendungen.firma.anwendung1
anwendungen.firma.anwendung2

Kommen sich die Prefs dann auf dem Gerät in die Quere wenn
SHARED_PREFS_NAME in den anwendung1 und anwendung2 die selbe Bezeichnung haben ???

Und wenn wir grad dabei sind. Gibt es irgendeine Möglichkeit mir die Einträge der Sql Lite Datenbank
anzeigen zu lassen???

Ich Danke euch.
Ihr seit Prima

Antworten
Maximilian O
  • Forum-Beiträge: 990

25.07.2011, 14:34:24 via Website

Hi Marcel,
Marcel S.
Ich muss hier mal Pushen.

Ich hab das Problem immer noch nicht in den Griff bekommen.
Gibt es irgend etwas zu beachten das mir bisher nicht bewusst war.

Es kommt nicht häufig vor aber noch haben die einen oder anderen das
Problem das die Prefs auf ihrem Phone nicht gespeichert bzw. übernommen
werden.

Ich glaube das es mit meinem Problem zusammenhängt aber ich
kann es eben nicht nachvollziehen.

Sagen wir ich habe zwei Anwendungen in folgenden Packages

anwendungen.firma.anwendung1
anwendungen.firma.anwendung2

Kommen sich die Prefs dann auf dem Gerät in die Quere wenn
SHARED_PREFS_NAME in den anwendung1 und anwendung2 die selbe Bezeichnung haben ???
Nop. Habe auch 2 Packages, von meiner App, macht garnichts aus. Sogar Unterpakete sind in Ordnung.
Marcel S.

Und wenn wir grad dabei sind. Gibt es irgendeine Möglichkeit mir die Einträge der Sql Lite Datenbank
anzeigen zu lassen???
Klar. Einfach die Verbindung zur DB herstellen, am besten über ne extra Klasse die das alles managed. Dann einfach nen Cursor anlegen und dann eine Funktion im, DB Manager aufrufen (zB executeSql) die dann nen Cursor zurückbringt.
Der hat dann die Daten die aus dem SQL Statement hervorgehen.
Marcel S.

Ich Danke euch.
Ihr seit Prima
:D

MfG Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten