Funkcja GetFilesDir() zwraca zero, co jest całkowicie dziwaczne. Co gorsza, mój kod jest ... boleśnie prosty:getFilesDir() zwracająca wartość null
public class main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File f = this.getFilesDir();
f.getAbsolutePath();
tempClicked((ToggleButton)findViewById(R.id.tempToggle));
}
Spowoduje to awarię na f.getAbsolutePath(). Obecnie działa w emulatorze emulującym system 2.3.3 na 1024x600.
Google nie zwraca nic na ten temat ... więc dlaczego tak się dzieje? I jak to naprawić ?!
Wielkie dzięki!
EDYCJA :: ROZWIĄZANE!
Cóż, nieco ...
myślę, że to okazało się błędem emulator. Zmieniłem skórkę emulatora na WXVGA, co umożliwiło prawidłowe zapisanie plików. A kiedy następnie zmieniłem rozdzielczość z powrotem na 1024x600, to działało poprawnie.
Tak więc, jeśli ktoś ma podobny błąd, sugeruję grę z emulatorem, dopóki nie znajdziesz sposobu na pokonanie błędu.
To dziwne! Zarówno na urządzeniach fizycznych, jak i emulatorach, podczas wywoływania funkcji Context.getFilesDir() otrzymuję ciąg znaków, taki jak "/data/data/com.example.myapp/files". Próbowałem nawet usunąć kartę SD, mimo że powinna być niezależna. Ten sam wynik. To naprawdę zagadkowe. – Shlublu
@Shlublu Powodem, dla którego otrzymujesz ten sam ciąg, jest to, że system nie ma pojęcia o karcie SD, tylko pamięć wewnętrzna/zewnętrzna. – rf43
Po prostu wpadłem na ten błąd. To jest niedorzeczne. Zmiana skórki emulatora tam iz powrotem naprawiła go również dla mnie. Takie bzdury, dlatego nienawidzę używać emulatorów. –