当我试图在Kotlin中的项目上运行./gradlew spotlessApply时,我得到了奇怪的异常。
导致问题的类:
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
open class CurrentFluttering(
@PrimaryKey var id: Long = 0,
var currentCoinsHeap: Int = 0,
var currentEarnedCoins: Int = 0,
var startTime: Long = 0,
var pauseTime: Long = 0,
var time: Long = 0,
var firstCycle: Boolean = true,
var inBackground: Boolean = false,
var currentMissedCoins: Int = 0,
var isPaused: Boolean = false,
) : RealmObject()堆栈跟踪:
> Task :spotlessKotlin FAILED
Step 'ktlint' found problem in 'app/src/main/java/com/cfhero/android/model/state/CurrentFluttering.kt':
Expecting a parameter declaration
com.pinterest.ktlint.core.ParseException: Expecting a parameter declaration
at com.pinterest.ktlint.core.KtLint.format(KtLint.kt:357)
at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.diffplug.spotless.kotlin.KtLintStep$State.lambda$createFormat$1(KtLintStep.java:173)
at com.diffplug.spotless.FormatterFunc.apply(FormatterFunc.java:31)
at com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
at com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
at com.diffplug.spotless.Formatter.applyToAndReturnResultIfDirty(Formatter.java:192)
at com.di有没有人遇到过同样或类似的问题?
发布于 2021-01-19 20:43:58
我找到了。问题是在构造函数( Kotlin允许的)中的last参数后挂起了',‘。
var isPaused: Boolean = false, <- here ლ(ಠ益ಠლ)
) : RealmObject()发布于 2021-01-22 13:01:44
这是由于插件使用的默认ktlint版本造成的。到目前为止,private static final String DEFAULT_VERSION = "0.35.0"还不支持尾随逗号,尽管Kotlin1.4支持。事实上,他们在某个时候将其更新到了0.40.0,但得到了一些formatting issues whiplash,并最终reverted了更改。
如果您愿意,您可以手动指向最新版本,如下所示
spotless {
kotlin {
target '**/*.kt'
ktlint("0.40.0")
}
}https://stackoverflow.com/questions/65791764
复制相似问题