gradle2.3.3升级到gradle3.5.0问题汇总
2019-09-19 本文已影响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