WebViewCore内部线程中的StatF中的IllegalArgumentException

时间:2013-02-10 10:49:54

标签: android multithreading exception

谷歌播放报告某些设备上的例外(全部是“其他”和一个“LG-E400”,所以它可能是一些自定义的Android版本)

例外是:

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)

问题是我不能忽略这个axception'因为它在单独的线程中。 这个问题有什么解决方案吗?  或者我该怎么办?

5 个答案:

答案 0 :(得分:3)

很可能是设备操作系统错误。我在AudioRecord库方面遇到了很多问题 - 在Yusu,Micromax,Alcatel和其他低端设备等设备上,本机init也出现了问题。它们在GooglePlay报告中都显示为“其他”。另外我遇到一些Cyanogenmod ROM在AudioRecord中有一个错误 - 在我的HTC One V上它工作正常,直到我闪过CM10。 了解这些设备上发生的确切设备型号,日志记录,内存和其他信息的一种好方法是使用一些高级崩溃报告工具,ACRA 在我收到有关制造商固件的设备上的报告后,我将其列入黑名单。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

看起来有些固件存在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)

答案 3 :(得分:1)

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

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卡和应用我正在安装没有清单中的 READ SD CARD 权限。所以这些事情可能是相关的,对我来说可能的解决方案要么是明白的,要么取消选择。希望它有助于进一步的研究。

答案 4 :(得分:1)

从Lollipop开始,Android对访问外部SD卡施加了相当大的限制。您可以使用:

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

解决错误。

对于我的应用程序,我只是跳过不可用的目录,主要是将用户限制在内部存储中。不是一个理想的解决方案,但有限的应用程序不会崩溃,而不是那个。