【问题标题】:java.lang.NoSuchMethodError: No virtual method elapsedNow()D in class Lkotlin/time/TimeMarkjava.lang.NoSuchMethodError:Lkotlin/time/TimeMark 类中没有虚拟方法 elapsedNow()D
【发布时间】:2020-12-03 04:54:54
【问题描述】:

我最近将Kotlin的版本更新为1.4.0-rc

从那时起Koin 返回以下运行时错误:

java.lang.NoSuchMethodError: No virtual method elapsedNow()D in class Lkotlin/time/TimeMark

【问题讨论】:

    标签: android kotlin koin


    【解决方案1】:

    显然这个问题是由于androidLogger() 与 Koin 一起使用造成的。 目前只有一个解决方法,即从androidLogger() 迁移到androidLogger(Level.ERROR)

    已经为此创建了一个问题:

    https://github.com/InsertKoinIO/koin/issues/847

    【讨论】:

    • 正如 Martin Bove 在另一个答案 (stackoverflow.com/a/63734210/1139514) 中提到的,该问题已在 Koin 版本 2.2.0-alpha-1 中得到修复。
    • 我在 Koin 2.2.2 中遇到了这个问题,但它在 2.2.3 中得到了修复(它处于最终状态,不是 alpha 也不是 beta)。请注意,Koin 将其供应商名称从 org.koin 更改为 io.insert-koin
    • 这里使用 2.2.2 并且必须升级到 2.2.3 才能使应用程序不会崩溃
    【解决方案2】:

    使用最新的 alpha 版本,我的问题得到了解决。

    // latest unstable
    koin_version = '2.2.0-alpha-1'
    implementation "org.koin:koin-androidx-scope:$koin_version"
    implementation "org.koin:koin-androidx-viewmodel:$koin_version"
    implementation "org.koin:koin-androidx-fragment:$koin_version"
    

    更多详情请访问主文档:Koin latest version

    另一种避免该问题的方法是@Aydinozkan 通过将记录器级别设置为错误或无来表示。

    startKoin {
            androidLogger(Level.NONE)          
        }
    

    【讨论】:

    • 贴切!像魅力一样工作。
    • Level.ERROR 在单独的库问题中也有效!
    • 工作完美,谢谢:)
    猜你喜欢
    • 2020-04-15
    • 2020-10-28
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多