2013-01-18 18 views

risposta

29

Nonostante il poco criptico NullPointerException che viene generato i problemi reali è che la mia applicazione on non aveva il permesso WRITE_EXTERNAL, quindi il sistema stava rifiutando il mio tentativo di usare ExternalDir per la memorizzazione nella cache. Sfortunatamente ciò stava accadendo a un livello abbastanza basso nel codice usato in Visualizzazione di bitmap Effecientemente che l'Eccezione non indica SecurityException come normalmente se si tentasse di scrivere sulla scheda SD senza il permesso appropriato.

Per fissare semplicemente aggiungere questo:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

al vostro manifesto.

+7

Su 4.4+ Android questa autorizzazione non è più necessario per scopi di cache È possibile utilizzare questa autorizzazione con il paremeter maxSdkVersion: Climbatize

+5

E su alcuni build lollipop questo è rotto, quindi suggerisco di rimuovere il massimo sdk ... Sciocco lo so –

+1

@Climbatize la mia app ha riportato lo stesso crash per le versioni SDK 19 e 22. – DroidHeaven

7

Ciò può verificarsi anche se si esegue un dispositivo o un emulatore senza alcuna memoria esterna.

+0

Almeno questo è inutile propagare tali dispositivi sul mercato degli utenti –

+0

Modificata la mia risposta, i dispositivi Android senza memoria esterna non sono così rari. Può anche accadere se il dispositivo ha una memoria esterna, ma la scheda non è presente o non è stata smontata. –

+0

Ricevo questo errore sull'emulatore Genymotion. – agamov

Problemi correlati