关于#kotlin#的问题,如何解决?

问题1:
AS老是在自动sync,使得我在键入代码一半时就会被打断,特别是在有某个报错时,AS会在你键入代码一半时自动跳转至出现问题的代码位置,体验感非常差

问题2:
在kotlin中引用变量时会出现如下图所示问题:

img


KotlinConstants中的代码如下所示

object KotlinConstants {
    //val agp_version by extra(agp_version)
    const val gradle_version = "7.4.2"
    const val kotlin_version = "1.8.0"
}

在File====>Settings....SettingsReposity或SystemSetting设置也没用吗

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/1100008
  • 这篇博客你也可以参考下:Kotlin协程:冷流转换热流的使用与原理
  • 除此之外, 这篇博客: Kotlin 协程的并发问题中的 使用synchronized解决协程并发问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Kotlin是基于JVM的,所以可以使用Java中的同步手段,如synchronized、Lock、Atomic等。

    但是sychronized是线程模型下的,不支持协程中的挂起函数。

    fun main() = runBlocking {
        val lock = Any()
        var i = 0
        val jobs = mutableListOf<Job>()
    
        repeat(10) {
            val job = launch(Dispatchers.Default) {
                repeat(1000) {
                    synchronized(lock) {
                        i++
                    }
                }
            }
            jobs.add(job)
        }
    
        jobs.joinAll()
    
        println("i = $i")
    }
    /*
    输出信息:
    i = 10000
     */
    
    fun main() = runBlocking {
        var i = 0
        val jobs = mutableListOf<Job>()
    
        @Synchronized
        fun add() {
            i++
        }
    
        repeat(10) {
            val job = launch(Dispatchers.Default) {
                repeat(1000) {
                    add()
                }
            }
            jobs.add(job)
        }
    
        jobs.joinAll()
    
        println("i = $i")
    }
    
    /*
    输出信息:
    i = 10000
     */
    
  • 您还可以看一下 李宁老师的征服Kotlin视频教程课程中的 在线运行Kotlin代码小节, 巩固相关知识点