如何从Java Activity *.java启动Kotlin Activity *.kt?

15

清除缓存/重启...对我有帮助!

我的Java类中的代码是:

Intent intent = new Intent(view.getActivity(), AddPaymentActivity.class);
view.getActivity().startActivity(intent);

AddPaymentActivity有Kotlin扩展.kt
出现错误java.lang.NoClassDefFoundError


这是您构建的问题。请发布您的 gradle.build 文件。 - voddan
@voddan,你能否提供在SO上的答案链接呢,我找不到。先谢谢了! - Yvgen
现在我意识到,我之前考虑的答案已经过时了。对于误导大家,我表示抱歉。 - voddan
你的构建看起来很好,但是当Gradle插件配置错误时通常会出现该异常。 - voddan
6个回答

9
在我的情况下,我忘记添加了


classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

并且。
apply plugin: 'kotlin-android'
...
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

build.gradle 文件

例子

项目的 build.gradle 文件

...
buildscript {
  ext.kotlin_version = '1.1.51'
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    ...
  }
}

allprojects {
  repositories {
    jcenter()
    google()
  }
}

应用程序 build.gradle

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

dependencies {
  ...
  compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}

然后使缓存无效并重新启动 文件 -> 使缓存无效/重新启动 - RamiReddy

7

文件 -> 无效缓存/重新启动...


4

Java和Kotlin生成的类没有实质性区别。如果您的代码在Android Studio中被静态解析(应该是这样的),那么除非Gradle配置错误,否则它必须运行。


3

您只需要像在Java中一样“正常”地操作即可:

Intent intent = new Intent(getActivity(), KotlinActivity.class);
startActivity(intent);

不要忘记在gradle文件中首先添加Kotlin到您的项目中。否则它将无法工作。


0
对于那些尽管看了这么多答案仍然遇到问题的人,我在这里分享一下我的经验。在我的情况下,我忘记在应用级别的 build.gradle 文件中添加 apply plugin: 'kotlin-android'。

0

在你的Java项目中添加Kotlin

  1. 这应该是你的build.gradle(项目级别) 输入图像描述

Add this kolin plugin in build.gradle module level

Add this in your depedency

希望它对你有用,对我有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接