为了账号安全,请及时绑定邮箱和手机立即绑定

将 Java 文件转换为 Kotlin 现在它不会编译 - “内部编译器错误”

将 Java 文件转换为 Kotlin 现在它不会编译 - “内部编译器错误”

杨__羊羊 2021-12-30 16:22:43
我正在 Android Studio 中将 Java Android 项目转换为 Kotlin,但遇到了问题。当我将一个文件转换为 Kotlin 并且 MainActivity 仍然在 Java 中时,它工作正常,但在转换 MainActivity 后代码不再编译。它因 Gradle / Kotlin 相关错误而失败,并且堆栈跟踪不是很有用,也没有指向我的代码中的任何内容。
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

问题来自转换OnClickListeners。我检查了您的代码,发现 kotlin 编译器无法检测其 lambda 形式。尝试更改OnClickListeners 如下:


@Suppress("ObjectLiteralToLambda")

class MainActivity : Activity() {


    // private val randomFactListener = OnClickListener {

    //    // code block

    // }


    private val randomFactListener = object : OnClickListener {


        override fun onClick(v: View?) {

            // code block

        }

    }


    // private val backToHomeListener = OnClickListener {

    //    // code block

    // }


    private val backToHomeListener = object : OnClickListener {


        override fun onClick(v: View?) {

            // code block

        }

    }


    // private val anotherRandomFactListener = OnClickListener {

    //    // code block

    // }


    private val anotherRandomFactListener = object : OnClickListener {


        override fun onClick(v: View?) {

            // code block

        }

    }


}

这是您更正后的MainActivity.kt完整源代码。


查看完整回答
反对 回复 2021-12-30
  • 1 回答
  • 0 关注
  • 247 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号