首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Klint和spotless: com.pinterest.ktlint.core.ParseException:需要参数声明

Klint和spotless: com.pinterest.ktlint.core.ParseException:需要参数声明
EN

Stack Overflow用户
提问于 2021-01-19 20:43:58
回答 2查看 1.2K关注 0票数 4

当我试图在Kotlin中的项目上运行./gradlew spotlessApply时,我得到了奇怪的异常。

导致问题的类:

代码语言:javascript
复制
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()

堆栈跟踪:

代码语言:javascript
复制
> 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

有没有人遇到过同样或类似的问题?

EN

回答 2

Stack Overflow用户

发布于 2021-01-19 20:43:58

我找到了。问题是在构造函数( Kotlin允许的)中的last参数后挂起了',‘。

代码语言:javascript
复制
var isPaused: Boolean = false, <- here ლ(ಠ益ಠლ)
) : RealmObject()
票数 9
EN

Stack Overflow用户

发布于 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了更改。

如果您愿意,您可以手动指向最新版本,如下所示

代码语言:javascript
复制
spotless {
    kotlin {
        target '**/*.kt'
        ktlint("0.40.0")
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65791764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档