gradle2.3.3升级3.5.3

Android studio升级3.6.1了,然而怎么也没办法运行代码了,在网上找了各种帖子都没解决,偶尔的机会发现笔记本上Android studio3.6.1确可以运行,唯一以不同就是gradle版本了,试着把公司的代码升级一下gradle,还真可以运行了,却不知道为什么了,有大神可以赐教一下了,记录一下升级过程遇到的问题

1.华为推送com.huawei.hms.api.xxx找不到的问题

解决方案

用这两行
api 'com.huawei.android.hms:push:2.5.3.xxx'
api 'com.huawei.android.hms:base:2.5.3.xxx'
去替换
implementation 'com.huawei.android.hms:push:2.5.3.xxx'

2.canvas.save(Canvas.ALL_SAVE_FLAG); 报错

canvas.save(Canvas.ALL_SAVE_FLAG);改成 canvas.save();

3.Cannot set the value of read-only property ‘outputFile’

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
      def outputFile = output.outputFile
      if (outputFile != null && outputFile.name.endsWith('.apk')) {
        //这里修改apk文件名
        def fileName="jianShu-${variant.buildType.name}-${defaultConfig.versionName}.apk"
        output.outputFile = new File(outputFile.parent, fileName)
      }
    }
  }

解决方案:

android.applicationVariants.all { variant ->
  variant.outputs.all { output ->
    def outputFile = output.outputFile
    if (outputFile != null && outputFile.name.endsWith(.apk’)) {
      //这里修改apk文件名
      def fileName = “jianShu-${variant.buildType.name}-${defaultConfig.versionName}.apk”
      output.outputFileName = fileName
    }
  }
}

4.compile被弃用

gradle2.3.3升级3.5.3_第1张图片
最好用api替换compile,也可以用implementation,坏处就是可能出现问题一,

api或compile关键字引用的包对于其他module来说是可见的,而implementation关键字引用的包对于其他module来说是不可见的。

你可能感兴趣的:(android)