Project build fails after switching to gradle 5.6 (at the same time, if I downgrade to 5.4.1 - projects builds without any problem). How to fix? What happens to JsonSlurper that it starts to crash?
Caused by: java.lang.RuntimeException: Unable to load FastStringService
at org.apache.groovy.json.internal.FastStringUtils.getService(FastStringUtils.java:57)
at org.apache.groovy.json.internal.FastStringUtils.toCharArray(FastStringUtils.java:67)
at org.apache.groovy.json.internal.BaseJsonParser.parse(BaseJsonParser.java:112)
at commons_b0n886tf4bx64z7ahcmoiww74.trimAndCopyJsonFile(/Users/projects/app/clients/android/commons.gradle:113)
at org.gradle.internal.metaobject.BeanDynamicObject$GroovyObjectAdapter.invokeOpaqueMethod(BeanDynamicObject.java:579)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:506)
at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:45)
at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:134)
at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:162)
at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:83)
at settings_7vv0xqhxk1jz7tv3zesay4nvr.run(/Users/projects/app/clients/android/settings.gradle:60)
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
... 124 more
code that fails in commons.gradle
:
/** make a copy of package.json file and trim it content from un-relative information. */
static File trimAndCopyJsonFile(source, destination) {
final jsonText = source.text
def slurper = new groovy.json.JsonSlurper()
def packageJson = slurper.parseText(jsonText)
def builder = new groovy.json.JsonBuilder()
// title, name, version, description, license, repository.baseUrl, licenseFilename
// author.username, author.name
def root = builder {
title packageJson.title
name packageJson.name
version packageJson.version
description packageJson.description
license packageJson.license
licenseFilename packageJson.licenseFilename
repository {
baseUrl packageJson.repository.baseUrl
}
author {
name packageJson.author.name
username packageJson.author.username
}
}
destination.createNewFile()
destination.write(builder.toPrettyString())
}
commons.gradle
is used from settings.gradle
file:
/* Configuration helper methods */
apply from: 'commons.gradle'