Android中使用正确参数构建StatFs对象

news/2025/2/2 2:44:29/
Android 2.3.3           
Eclipse Version: 3.7.0           
LogCat   

LogCat 报错信息:

02-14 11:54:12.834: ERROR/(2525): statfs htc failed, errno: 2
02-14 11:54:12.844: WARN/System.err(2525): java.lang.IllegalArgumentException
02-14 11:54:12.853: WARN/System.err(2525): at android.os.StatFs.native_setup(Native Method)
02-14 11:54:12.873: WARN/System.err(2525): at android.os.StatFs.(StatFs.java:32)
02-14 11:54:12.873: WARN/System.err(2525): at com.taobao.util.Devices.getBlock(Devices.java:161)
02-14 11:54:12.884: WARN/System.err(2525): at com.taobao.util.Devices.getUsedRatio(Devices.java:199)
02-14 11:54:12.884: WARN/System.err(2525): at com.taobao.htc.Check.checkSDBlock(Check.java:271)
02-14 11:54:12.884: WARN/System.err(2525): at com.taobao.htc.Check.run(Check.java:332)
02-14 11:54:12.895: WARN/System.err(2525): at java.lang.Thread.run(Thread.java:1019)

发生错误原因分析:
分析发生错误部分代码,发现在构建StatFs对象时出错

			sdpath = "htc/";
StatFs sf = new StatFs(sdpath);

StatFs用于对系统的存储容量进行检测。报错是因为构建StatFs对象时使用了非法参数。"htc/"不是一个合法有效的参数,合法参数应该形如“"/mnt/sdcard”。

 

解决办法:

使用默认的路径及名称是最好的方法

			sdpath = Environment.getExternalStorageDirectory().getPath();// sdpath ="/mnt/sdcard"
//sdpath = Environment.getExternalStorageDirectory().getName();// sdpath ="sdcard"
StatFs sf = new StatFs(sdpath);

如果一定需要自定义路径作为参数,也应使用类似下列格式的有效自定义路径

			sdpath = "/mnt/sdcard/htc/";
sdpath = "/sdcard/htc/";
sdpath = "sdcard/htc/";


以合法的路径及名称作为参数,一般类似以"/mnt/sdcard" 或"sdcard/"开头的路径都是正确的。具体情况需要在编程中测试一下。


http://www.ppmy.cn/news/345969.html

相关文章

期末复习C语言2020.12.24

1自守数(10分) 问题描述:若一个整数a满足条件a*a的尾数等于a则称a为自守数,例如 2525625,76765776, 9376*937687909376 都是自守数。编写程序,求n以内所有自守数。 输入:从键盘随…

JZOJ 5485 字符串

Description 一个字符串的权值是这个串包含的不同字符个数。 给定一个长度为 n 的字符串,把它分为k个连续非空字段&#xff0c;每个字符必须在某一段中&#xff0c;此字符串的权值和为这 k 个连续非空字段的权值的总和,最小化字符串的权值和。Data Constraint1< k <=…

bzoj-2525 Dynamite

题意&#xff1a; 给出一颗n个结点的树&#xff0c;上面有若干个关键结点&#xff1b; 现在可以在这些结点上选最多m个点&#xff0c;求最小化关键点到选择点的最大距离&#xff1b; 题解&#xff1a; 首先这道题是一个最大最小化的问题&#xff0c;很容易想到二分&#xff…

【定位问题】chan算法多基站目标定位【含Matlab源码 2525期】

⛄一、chan+taylor算法移动基站无源定位简介 1 引言 随着无人机的普及,低空空域的安全问题受到人们的极大关注.针对该问题,本研究对“非合作型”无人机采用一种基于时差法的无源定位算法对其进行实时定位.基于时差法的无源定位方法是根据求解无人机信号到达主站和各辅站的…

golang cpu 内存分析

top命令可以查看cpu使用情况的前几名 list 函数名 可以查看函数的cpu使用情况 最后一列为函数名称&#xff0c;其他各项内容意义如下&#xff1a; flat:当前函数占用CPU的耗时 flat%:当前函数占用CPU的耗时百分比 sum%:函数占用CPU的累积耗时百分比 cum&#xff1a;当前函…

杭电2525

Clone Wars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 244 Accepted Submission(s): 45 Problem Description 逐青曾经很喜欢玩战略游戏&#xff0c;有一段时间他一直泡在自己发现的一个游戏《克隆人大…

【定位问题】基于matlab chan算法多基站目标定位【含Matlab源码 2525期】

⛄一、chantaylor算法移动基站无源定位简介 1 引言 随着无人机的普及&#xff0c;低空空域的安全问题受到人们的极大关注&#xff0e;针对该问题&#xff0c;本研究对“非合作型”无人机采用一种基于时差法的无源定位算法对其进行实时定位&#xff0e;基于时差法的无源定位方法…

EOJ 2525 Light Switching

http://acm.cs.ecnu.edu.cn/problem.php?problemid2525 题意&#xff1a;给一排灯操作&#xff0c;0&#xff0c;s&#xff0c; e表示改变编号从s到e的灯的状态&#xff0c;1&#xff0c;s&#xff0c;e表示查询编号s到e的亮的盏数。 线段树&#xff0c;查询区间&#xff0c…