美文网首页
开发过程中的Bug收集

开发过程中的Bug收集

作者: 陈科比大宝贝儿 | 来源:发表于2017-08-28 10:39 被阅读0次

    1、请求后台数据的过程中,我们一般要用到Dialog,刚打开页面的时候,我们一般会先去请求网络加载数据,如果打开页面后,在Dialog显示前,立即点击返回,就会报错:

    [Unable to add window — token android.os.BinderProxy@42824 is not valid; is your activity running?]
    

    这句话意思是当Dialog显示的时候,Dialog所依附的Activity销毁了,所以就报错。
    解决方式:

    if(!((Activity) context).isFinishing())
    {
        //show dialog
    }
    

    2、如果页面中含有Spinner控件的时候,当页面刚OnCeate的时候Spinner会相应默认选中的item。

    3、EventBus采坑
    问题:EventBus消息接收时,能接收消息,但是无法更新ui
    现象:我的逻辑是第一个页面跳转到第二个页面,然后再第二个页面发送消息,第一个页面接收消息然后更新ui。
    解决:第二个页面发送完消息之后,直接finish()掉,而不是重新打开第一个页面。

    4、gradle版本踩坑
    问题:当导入github上或者别人写的Demo时,由于别人用的AS比自己的AS高,所以会让你提示升级:

    This Gradle plugin requires a newer IDE able to request IDE model level 3
    或者是:This Gradle plugin requires Studio 3.0 minimum
    

    解决方式:1、升级AS
    2、在gradle.properties中加入以下这句:重新编译即可。

    android.injected.build.model.only.versioned = 3
    

    5、问题:Failed to open zip file
    解决方式:https://jingyan.baidu.com/article/48b37f8ddbcbbe1a64648832.html
    重新下载导入项目中的gradle版本(压缩包),然后放到电脑中的对应gradle目录下。
    gradle下载地址:http://services.gradle.org/distributions/
    gradle目录地址:C:\Users\lenovo.gradle\wrapper\dists
    6、问题是:

    Error:Execution  failed for  task ':app:mergeDebugResources'.>
    Error: java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception: AAPT2  error:
    

    解决方式是:
    在工程根目录下新建gradle.properties文件 加入
    android.enableAapt2=false
    即可解决。
    7、获取apk的SHA1值:
    先切换到jdk的bin目录下:
    然后输入

     keytool -list -v -keystore  完整路径下的\正式签名.keystore
    

    8、如果项目依赖的项目太多,导致引入的jar包版本号冲突,可以这样解决:
    在主项目的build.gradle里面:

     configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                def requested = details.requested
                if (requested.group == 'com.android.support') {
                    if (!requested.name.startsWith("multidex")) {
                        details.useVersion '25.3.0'
                    }
                }
            }
        }
    

    9、编译失败:Android studio Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
    网上好多说是去掉项目根目录的build.gradle中的allprojects{...}里面写上google() ,但是试验的不管用,原来是jcenter()和google()写反了,换一下就好啦。正确的写法是:

     repositories {
            google()
            jcenter()
            mavenCentral()
        }
    

    相关文章

      网友评论

          本文标题:开发过程中的Bug收集

          本文链接:https://www.haomeiwen.com/subject/yvmwdxtx.html