2013-02-10 10 views
10

Google Play rapporti un'eccezione su alcuni dispositivi (tutti sono "altro" e uno "LG-E400", quindi potrebbe essere un po 'di accumulo Android personalizzato)IllegalArgumentException in statfs nella filettatura interna WebViewCore

eccezione è:

java.lang.IllegalArgumentException 
at android.os.StatFs.native_setup(Native Method) 
at android.os.StatFs.<init>(StatFs.java:32) 
at android.webkit.CacheManager.init(CacheManager.java:199) 
at android.webkit.BrowserFrame.<init>(BrowserFrame.java:210) 
at android.webkit.WebViewCore.initialize(WebViewCore.java:201) 
at android.webkit.WebViewCore.access$500(WebViewCore.java:54) 
at android.webkit.WebViewCore$WebCoreThread$1.handleMessage(WebViewCore.java:631) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:653) 
at java.lang.Thread.run(Thread.java:1019) 

Il problema è che non posso ignorare questa ascezione perché è in thread separato. C'è qualche soluzione per questo problema? Oppure cosa posso fare con quello?

+1

Definitivamente sembra un problema del sistema operativo. Per noi accade esclusivamente su LG Optimus L3 e LG-E405 in modo da poterli elencare in nero per ora. Sono essenzialmente lo stesso dispositivo. –

risposta

3

Molto probabilmente è un bug del sistema operativo del dispositivo. Ho molti problemi con la libreria AudioRecord - anche in init nativo su dispositivi come Yusu, Micromax, Alcatel e altri dispositivi a bassa gamma. Sono tutti visualizzati come "altro" nei rapporti di GooglePlay. Inoltre ho scoperto che alcune ROM Cyanogenmod hanno un bug in AudioRecord - sul mio HTC One V funzionava bene fino a quando non lampeggiavo CM10. Un buon modo per conoscere il modello del dispositivo esatto, logcat, mem e altre informazioni su ciò che accade su questi dispositivi è utilizzare uno strumento avanzato di report degli arresti anomali, come ACRA Dopo aver ricevuto la segnalazione che qualcosa è decisamente sbagliato sul dispositivo con il firmware del produttore, Inserisco la lista nera su GooglePlay.

1

Sembra che alcuni firmware ha avuto problema con statfs

ho avuto problema simile con Samsung Galaxy Stratosphere ™ II (Verizon) SCH-I415, Android: 4.1.2 Quando chiamo:

StatFs statFs = null; 
statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath()); 

ho eccezione:

java.lang.IllegalArgumentException 
at android.os.StatFs.native_setup(Native Method) 
at android.os.StatFs.<init>(StatFs.java:32) 
1

ho avuto problema simile e il mio registro cercavo come

03-14 13:41:55.715: E/PayPalService(14037): Risk component failed to initialize, threw null 
03-14 13:41:56.295: E/(14037): statfs /storage/sdcard0 failed, errno: 13 
03-14 13:41:56.365: E/AndroidRuntime(14037): FATAL EXCEPTION: Thread-1219 
03-14 13:41:56.365: E/AndroidRuntime(14037): java.lang.IllegalArgumentException 
03-14 13:41:56.365: E/AndroidRuntime(14037): at android.os.StatFs.native_setup(Native Method) 
03-14 13:41:56.365: E/AndroidRuntime(14037): at android.os.StatFs.<init>(StatFs.java:32) 

ho trovato questo problema relativo alla scheda SD, cercando le prime due righe .Poi ho controllato impostazione del dispositivo e trovato avevo controllato il loro un'opzione applicazioni devono avere il permesso di leggere la carta di deviazione standard e l'applicazione stavo installando era non avendo LEGGI scheda SD permesso in manifest. Quindi, probabilmente, queste cose sono correlate e le possibili soluzioni per me sono state messe in chiaro o per annullare l'opzione. Spero che ciò possa aiutare in ulteriori ricerche.

2

percorso che si sta fornendo nel costruttore statfs fa non esiste

String path = "path to some directory"; 
StatFs statFs = null; 
statFs = new StatFs(path); 

e si deve avere l'autorizzazione di memorizzazione esterno nel file manifesto

+1

Se 'Percorso file' punta a un file non esistente in una directory esistente, usare' path.getParent() 'per passare la directory. – Paramaeleon

1

partire con il Lollipop, Android posto restrizioni piuttosto estreme su come accedere alle schede SD esterne . È possibile utilizzare:

StatFs stat; 
    try { 
     stat = new StatFs(path); 
    } catch (IllegalArgumentException e) { 
     // Handle the failure gracefully or just throw(e) 
    } 

per aggirare l'errore.

Per la mia applicazione, salta semplicemente le directory non disponibili, limitando essenzialmente l'utente alla memoria interna. Non è una soluzione ideale, ma un'applicazione limitata che non si blocca è meglio di quella che fa.

+0

no. Non si tratta di chiamare nuovi StatF() dal mio codice. Si tratta di nuove StatF() chiamate dal codice Android. È chiamato in thead separato in WebView. Non riesco ad aggiungere il blocco try lì. – babay

Problemi correlati