GetFilesDir() devuelve nulo, lo que es completamente extraño. Lo que es peor, es mi código es ... dolorosamente simple:getFilesDir() devolviendo nulo
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));
}
Esto se colgará en f.getAbsolutePath(). Actualmente se ejecuta en el emulador emulando un sistema 2.3.3 a 1024x600.
Google no devuelve nada sobre esto ... así que, ¿por qué sucede esto? ¿Y cómo lo arreglo?
¡Muchas gracias!
EDIT :: RESUELTO!
Bueno, un poco ...
creo que resultó ser un error del emulador. Cambié el aspecto del emulador a WXVGA, y eso permitió que escribiera los archivos correctamente. Y cuando cambié la resolución a 1024x600, seguía funcionando correctamente.
Por lo tanto, si alguien tiene un error similar, le sugiero que juegue con el emulador hasta que encuentre una forma de superar el error.
Esto es extraño! Tanto en los dispositivos físicos como en los emuladores, recibo una cadena como "/data/data/com.example.myapp/files" cuando llamo a Context.getFilesDir(). Incluso traté de eliminar mi tarjeta SD a pesar de que debería ser independiente. Mismo resultado. Eso es realmente desconcertante. – Shlublu
@Shlublu El motivo por el que recibe la misma cadena es que el sistema no tiene ningún concepto de su tarjeta SD, solo almacenamiento interno/externo. – rf43
Acabo de encontrarme con este error. Es ridículo. Cambiar el aspecto del emulador de un lado a otro también lo solucionó. Mierda como esta es por qué odio usar los emuladores. –