2014-05-07 6 views
5

Durante la chiamata per ottenere i dettagli della memoria esterna viene visualizzato un errore come quello riportato di seguito.Errore di percorso non valido: richiama la dimensione della memoria esterna

05-07 16:55:07.710: E/AndroidRuntime(22624): FATAL EXCEPTION: main java.lang.IllegalArgumentException: Invalid path: /storage/emulated/0 
05-07 16:55:07.710: E/AndroidRuntime(22624): at android.os.StatFs.doStat(StatFs.java:46) 
05-07 16:55:07.710: E/AndroidRuntime(22624): at android.os.StatFs.<init>(StatFs.java:39) 

Prima di aggiornare il mio android a SAMSUNG Galaxy S3 4.3 è stato eseguito. Ho seguito questo post .Questo è il mio codice:

// getting available memory 
public static String getAvailableExternalMemorySize() { 
    if (externalMemoryAvailableBool()) { 
     // File path = 
     // Environment.getExternalStorageDirectory().getAbsolutePath(); 
     StatFs stat = new StatFs(Environment.getExternalStorageDirectory() 
       .getAbsolutePath()); 
     long blockSize = stat.getBlockSize(); 
     long availableBlocks = stat.getAvailableBlocks(); 
     return formatSize(availableBlocks * blockSize); 

    } else { 
     return ERROR; 
    } 

} 

// getting total memory 
public static String getTotalExternalMemorySize() { 

    if (externalMemoryAvailableBool()) { 
     File path = Environment.getExternalStorageDirectory(); 
     StatFs stat = new StatFs(path.getPath()); 
     long blockSize = stat.getBlockSize(); 
     long totalBlocks = stat.getBlockCount(); 
     return formatSize(totalBlocks * blockSize); 
    } else { 
     return ERROR; 
    } 
} 

voglio ottenere Disponibile & totale di memoria della mia scheda di memoria esterna.

+0

dove si ottiene un'eccezione? – sandrstar

+1

Qui: >>> StatFs stat = new StatFs (Environment.getExternalStorageDirectory() .getAbsolutePath()); –

+1

Sul mio dispositivo Samsung Galaxy il codice funziona correttamente. Hai provato a utilizzare l'autorizzazione READ_EXTERNAL_STORAGE? – sandrstar

risposta

1

Questo serve per coloro che cercano la stessa firma di arresto anomalo. Dal momento che questa domanda è arrivata in cima quando su Google e non ho visto alcuna risposta chiara accettata.

Il suggerimento di @sandrstar è corretto. Le mie app hanno avuto lo stesso crash e l'ho risolto solo aggiungendo il permesso READ_EXTERNAL_STORAGE. Anche se sembra che gli arresti anomali per il mio caso si siano verificati/riportati sul dispositivo 4.4.

La ragione è spiegata qui: http://developer.android.com/reference/android/Manifest.permission.html#READ_EXTERNAL_STORAGE

+2

Aveva lo stesso problema. L'aggiunta dell'autorizzazione non ha aiutato. Il percorso della mia scheda SD è/mnt/media_rw/extSdCard – AndroidDev

Problemi correlati