kotlin Unresolved reference: kotlinx

kotlin开发android过程中出现Unresolved reference

在已经确保kotlin各种配置正确的情况下,比如在project:build.gradle

buildscript {
    ext.kotlin_version = '1.1.2-4'

    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}

app:build.gradle中

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

如果你已经确保已经在上面进行正确的配置,这个时候出现kotlinx出现没有引用的原因则在于这个引用存在于你的module中,所以会导致这个问题的出现。

解决这个问题有两个办法:

1.按照正常的android开发模式,不使用kotlinx工具进行直接引用,也就是说用findviewbyid的方式获取资源,不使用kotlinx直接导入

import kotlinx.android.synthetic.main.falut_main_layout.*//这种方式是错误的

2.将存在与module中的资源文件放入到app下面

总的来说,这两种方式各有优劣,具体用那种方式根据需求而定吧,但是同时希望jetbrains能够把kotlinx工具做得更完美一点,兼容这种在不同module下的kotlinx的使用

> Task :app:compileDebugKotlin e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/admin/AdminActivity.kt:23:16 Unresolved reference: Modifier e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/admin/AdminActivity.kt:23:36 Unresolved reference: dp e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/admin/AdminActivity.kt:50:27 Unresolved reference: CoroutineScope e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/admin/AdminActivity.kt:50:42 Unresolved reference: Dispatchers e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/admin/AdminActivity.kt:55:13 Unresolved reference: ExportWorker e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:50:46 Unresolved reference: AMapLocationClient e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:51:46 Unresolved reference: WeatherSearchQuery e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:64:13 Unresolved reference: allPermissionsGranted e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:65:13 Unresolved reference: startCamera e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:67:13 Unresolved reference: initAMapLocation e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:102:21 Unresolved reference: WatermarkAsyncTask e: file:///E:/AndroidStudioProjects/EngineerCamera/app/src/main/java/cn/xpmts/engineercamera/camera/CameraActivity.kt:105:49 Unresolved reference: ImageCaptureException e: file:///E:/AndroidStudioProjects/Enginee
最新发布
04-03
Kotlin 中,`Unresolved reference: defaultValue` 的错误通常是因为尝试访问一个不存在的属性 `defaultValue` 或者误解了如何定义和使用具有默认值的函数参数。以下是关于此问题的专业解答: ### 默认值的正确用法 在 Kotlin 中,可以通过为构造器或函数的参数指定默认值来减少方法重载的需求。例如,下面是一个带有默认值的类声明[^1]: ```kotlin class Bird( val weight: Double = 0.0, val age: Int = 0, val color: String = "blue" ) ``` 如果试图通过某种方式调用 `defaultValue` 属性,则会引发编译错误,因为 Kotlin 并不提供名为 `defaultValue` 的内置机制。相反,应该直接利用已设置默认值的参数。 #### 示例代码展示 以下是如何正确创建对象并利用默认值的例子: ```kotlin fun main() { val bird1 = Bird(weight = 1.5, age = 2) // 使用部分参数,默认颜色为 blue println(bird1.color) // 输出:blue val bird2 = Bird(color = "red") // 只传递颜色参数,其他采用默认值 println("${bird2.weight}, ${bird2.age}") // 输出:0.0, 0 } ``` 上述代码展示了无需显式提及任何特殊关键字即可实现的功能——即依靠预设好的默认值完成实例化过程。 ### 关于插件版本影响的可能性分析 值得注意的是,如果你正在使用的某些特定库或者工具链(比如 Kotlin 插件)存在兼容性问题也可能间接导致类似的异常行为。然而基于当前提供的资料来看,并无直接证据表明这是由 Kotlin 版本升级至 2.0.0 所引起的问题[^2]。因此可以暂时排除这一因素作为主要成因。 至于更复杂的异步编程场景下涉及到 Flow 和 ChannelFlow 等高级特性时所遇到的技术细节则属于另一范畴的内容[^3],与本次讨论的主题无关。 最后提到的一个具体路径中的语法提示 `(19, 22)` 表明可能存在 lambda 表达式的返回类型预期不符的情况[^4],但这同样不属于此处探讨范围内的 “Unresolved reference: defaultValue”。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值