关于Android Studio升级到3.4.2版本后的坑

由于我几个电脑上as的版本都不一样,所以同一个项目于的gradle文件也不一样;最近给mac装了as3.4.2后导入以前的老项目各种报错

  • 首先gradle依赖要改成3.4.2
   dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
    }
  • gradle-wrapper.properties中gradle版本最低支持到5.1.1
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
  • 资源整合失败,如自定义属性和自定义id :ids.xml中写法不兼容报错
    在这里插入图片描述
    报错的位置app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml;鼠标点击会跳转到具体报错的位置,但是这个是编译后的资源文件,我们要改的是源文件,可以复制相关属性去全局搜索;这里说’item标签中的值要么为具体资源的引用要么为空,以前的写法是可以用一个默认值占位的’
    – 以前的写法
    <item name="xxx_id" type="id">xxx_id</item>

–现在的写法,如果xxx_id不是一个引用值可以不写

 <item name="xxx_id" type="id"/>

–改完以后上面的error就消失了,如果有多个要逐一修改注意:修改之前可以将原有的先分组,再注释,然后批量修改,有可能其他低版本上要用到,到时候直接注释切换就ok了


##上面的问题解决了再build可以正常执行,但是在run的时候java文件会报各种包找不到的错误,如Gson,okhttp…等第三方的的包找不到;

  • 解决方法就是把dependencies里面的compile和implementation换成api即可,因为在报错信息中会让你用’api’或者’implementation’去替换所有的’compile’,但是改成implementation可能获取不到第三方的库,最终方案就是直接用api替换compile

升级IDE全是坑,今天就记录这两问题,以后再慢慢扩展。

发布了117 篇原创文章 · 获赞 56 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/Jiang_Rong_Tao/article/details/98874157