我使用android studio 1.0.1创建了一个聊天项目
这是gradle构建属性
apply plugin:'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "chat.mchattrav.chattrav"
minSdkVersion 5
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
当我运行应用程序时,我立即收到此错误消息
不幸的是应用程序停止了
当我调试应用程序时,我得到了这个异常信息
java.lang.NoSuchMethodError:android.os.StatFs.getBlockSizeLong
似乎我使用了比这种方法所要求的“18”更低的api级别 我可以解决这个问题,而无需增加api级别“minSdkVersion”吗? 我可以使用支持库吗?
答案 0 :(得分:9)
如果你需要支持低于18的SDK,那么你需要处理它。
存在两种方法:
public int getBlockSize ()在API1中添加,在API18上已弃用
和
public long getBlockSizeLong ()在API18中添加
您的项目使用第二个,您需要找到所有用法并关心运行Android版本,例如
StatFs staFs = new StatFs("path");
long size = 0;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){
size = staFs.getBlockSizeLong();
}else {
size = staFs.getBlockSize();
}
// use size ...