最近给项目升级sdk版本:
compileSdkVersion:26 -> 28
targetSdkVersion:23 -> 28
buildToolsVersion:"25.0.2" -> "28.0.3"
support包:"24.2.1" -> "28.0.0"
遇到一些问题,在此记录一下解决办法:
一、编译报错:junit.framework.Assert不存在
项目中有个地方用到了Assert类(使用Assert.assertTrue()),原本的导包是:
import junit.framework.Assert;
但编译时报错:junit.framework.Assert不存在。
原因:Assert类在新版本中从junit.framework中移除,移到org.junit中。
解决办法:
(1)、找到Androidstudio目录,将.\gradle\gradle-4.4\lib\plugins目录下的junit-4.12jar,拷贝到工程app目录下的libs文件夹中,并引入,即在build.gradle中添加一行:compile files("libs/junit-4.12.jar"),如:
dependencies {
...
compile files('libs/junit-4.12.jar')
}
(2)、将导包 import junit.framework.Assert 替换为 org.junit.Assert;
二、7.0以上运行崩溃:java.lang.SecurityException:MODE_WORLD_READABLE no longer supported
这是由于MODE_WORLD_READABLE模式已经被废弃,需换成MODE_PRIVATE,即:
SharedPreferences sp = context.getSharedPreferences("xxx", Context.MODE_PRIVATE);