Bug收集
2017-09-08 本文已影响0人
woochen123
1.资源文件错误
Error:Execution failed for task ':generalAPPN:mergeDebugResources'.
> Crunching Cruncher failed, see logs
原因:png图片或者.9图片不能通过检查
解决方案:
1.忽略cruncher检查(如果是图片格式导致)
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
2.调整图片的大小(如果是图片过大导致)
2.gradle版本和gradle插件版本
gradle版本:
classpath 'com.android.tools.build:gradle:2.2.2'
gradle插件版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
- 2.2.x 最多支持2.14.1版本gradle插件
- 2.3.x 最少需要3.3的版本gradle插件
各版本下载链接
直接下载gradle插件后可以直接放在(3.3插件为例子):C:\Users\用户名.gradle\wrapper\dists\gradle-3.3-all\xxxxxxxxxxxxxx文件下(这里注意不要解压缩)
3.重复依赖问题
同样的配置下的版本冲突,会自动使用最新版;而不同配置下的版本冲突,gradle同步时会直接报错。可使用exclude、force解决冲突。 比如你同时依赖了两个版本的v7包
implementation ('com.android.support:appcompat-v7:26.1.0'){
force true
}
除了可以用exclude、force解决外,也可以自己统一为所有依赖指定support包的版本,不需要为每个依赖单独排除了:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
4.Can not perform this action after onSaveInstanceState ?
当fragment的状态信息发生改变,通过commit操作可以将信息传递给activity进行保存,但是只能在onSaveInstanceState之前进行。如果在之后进行操作,就会提示错误。
改用commitAllowingStateLoss()就能够解决这个问题