【问题标题】:How to call Kotlin class from Java class如何从 Java 类调用 Kotlin 类
【发布时间】:2020-08-17 06:14:12
【问题描述】:

我需要将意图从 java 活动传递给 Kotlin 活动:

Java 活动 ProfileActivity.class:

 Intent selectGameIntent = new Intent(ProfileActivity.this, kotlin.jvm.JvmClassMappingKt.getKotlinClass(CreateNewPollUserActivity.class).getClass());
                startActivity(selectGameIntent);

这是我的 Kotlin 活动:

class CreateNewPollUserActivity: AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_create_new_poll_user)


        val max = 45
        val min = 10
        val total = max - min}}

运行时出现错误:

cannot find symbol
import com.myvote.Profile.ToolbarOption.CreateNewPollUserActivity;

任何想法如何将意图从 java 活动发送到 Kotlin 活动?

【问题讨论】:

  • Intent selectGameIntent = new Intent(ProfileActivity.this, CreateNewPollUserActivity.class); startActivity(selectGameIntent);
  • CreateNewPollUserActivity.kt - 这是一个 kotlin 类文件,不能像普通的 java 类一样调用它
  • 为什么不行?
  • 错误:找不到符号导入com.Profile.ToolbarOption.CreateNewPollUserActivity; ^ 符号:类 CreateNewPollUserActivity
  • ...你不需要kotlin.jvm.JvmClassMappingKt.getKotlinClass,只需使用CreateNewPollUserActivity.class ...

标签: java android android-studio kotlin android-intent


【解决方案1】:

在 build.gradle 项目中添加这个

buildscript {
    ext.kotlin_version = '1.5.21'
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

在 build.gradle 模块文件之上

apply plugin: 'kotlin-android'

【讨论】:

    【解决方案2】:

    这是从 Java 类调用 Kotlin 类的方法

     Intent selectGameIntent = new Intent(ProfileActivity.this, 
     CreateNewPollUserActivity.class);
      startActivity(selectGameIntent);
    

    在您的代码中,问题可能不在于 Java-Kotlin 关系,而在于其他问题。请检查您的代码/项目。

    【讨论】:

    • 检查了两次,但问题仍然存在。你的答案是错误的。不可接受。
    • 你能添加你的日志吗
    • 没有日志数据,因为错误在 BUILD 级别:C:\Users\dbokov\app\src\main\java\com\Profile\ProfileActivity.java:38: 错误:找不到符号导入 com.Profile.ToolbarOption.CreateNewPollUserActivity; ^ 符号:类 CreateNewPollUserActivity 位置:包 com.Profile.ToolbarOption
    • 包名相同?片段和活动
    • 不,任何错误...我想,也许我需要将一些 kotlin 实现添加到我的 gradle 中?但是,如果是这样,我怎么能在 kotlin 中编写 Activity...
    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多