WebViewCore内部线程中的StatFs中的IllegalArgumentException

谷歌播放在一些设备(所有是“其他”和一个“LG-E400”,所以它可能是一些自定义的Android版本)的exception

例外是:

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) 

问题是我不能忽视这个原因,因为它是在不同的线程。 有没有解决这个问题的方法? 或者我能做些什么?

Solutions Collecting From Web of "WebViewCore内部线程中的StatFs中的IllegalArgumentException"

很可能是一个设备的操作系统错误。 我有很多AudioRecord库的问题 – 它也不能在像Yusu,Micromax,Alcatel和其他低范围设备的设备数量原生初始化。 在GooglePlay报告中,它们都显示为“其他”。 另外我遇到了一些Cyanogenmod ROM在AudioRecord中有一个bug – 在我的HTC One V上它工作正常,直到我闪过CM10。 知道确切的设备型号,logcats,mem和其他有关这些设备上发生的事情的一个好方法是使用一些先进的崩溃报告工具,如ACRA我得到报告说,设备制造商的固件肯定是错误的,我黑名单它在GooglePlay上。

您在Statfs构造函数中提供的path不存在

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

并且您必须在清单文件中具有外部存储权限

看起来像一些固件与StatFs有问题

我和三星Galaxy Stratosphere™II(Verizon)SCH-I415,Android有类似的问题:4.1.2当我打电话给:

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

我有例外:

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

我有类似的问题,我的日志看起来像

 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) 

我发现这个问题相关的SD卡通过看前两行。然后我检查设备设置,发现我已经检查了他们的一个选项应用程序必须有权限读取SD卡 ,我安装的应用程序没有读取SD卡权限performance。 所以可能这些事情是相关的,对我来说,可能的解决scheme要么是获得明确的许可,要么取消这种select。希望这将有助于进一步的研究。

从棒棒糖开始,Android在访问外部SD卡方面放置了相当严格的限制。 您可以使用:

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

解决错误。

对于我的应用程序,我只是跳过不可用的目录,实质上限制了用户到内部存储。 不是一个理想的解决scheme,但一个有限的应用程序不会崩溃比一个好。