gradle2.3.3升级到gradle3.5.0问题汇总

问题1:Could not find method leftShift() for arguments

preBuild << {
  task.execute()
}

解决方案:去掉build.gradle文本中的<<

问题2:Gradle DSL method not found: 'execute()'

解决方案:目前用task.doFirst方法代替

问题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:Unable to resolve dependency for ':CoreBusiness@beta/compileClasspath': Could not resolve project :OpenSourceLibrary.

解决方案:所有module下的buildTypes要保持一致

buildTypes {
   debug {
       ...
   }
   beta {
       ...
       //关键代码,lib的module下要添加这行代码
       matchingFallbacks = ['release', 'debug']
   }
   release {
       ...
   }
   sourceSets{
   }
   lintOptions {
   }
}

注意:lib的module下buildTypes中的项目可以不填内容,例如:lintOptions{}

问题5:jni生成so的方式改变了。

解决方案:使用CMake方式来生成so。

问题6:签名打包需要使用v2Signing。

解决方案:使用美团新版打包工具,项目地址:https://github.com/Meituan-Dianping/walle

你可能感兴趣的:(gradle2.3.3升级到gradle3.5.0问题汇总)