Bug收集

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()就能够解决这个问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,018评论 25 708
  • 一.概述   本文主要介绍Android平台下bug类型和产生原因、崩溃捕获和收集解决方案、以及bugly的使用方...
    Haraway阅读 9,514评论 3 14
  •  该文章收集我在开发中遇到的问题,因为有些问题上次出现后可能很长时间后会再次出现但是已经忘了当时怎样解决的,会耗费...
    寻形觅影阅读 3,023评论 0 3
  • NO 1: 今天在“爸比讲故事”项目重构时遇到了这个问题,在低版本设备(SDK 18 - 4.3.1)上面死活发布...
    hahafei阅读 1,329评论 0 2
  • 最近一个月,无论是简书还是朋友圈里,各位努力的写作大神们,无一不在透露着,自己的写作秘籍,以及如何爬在成为大神的路...
    酥小栗阅读 197评论 2 1