从java活动* .java开始kotlin活动* .kt?

时间:2016-08-10 15:38:48

标签: android android-intent android-activity kotlin

无效缓存/重启...帮助我!

我在java类中的代码是:

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

AddPaymentActivity有kotlin extention .kt
收到错误 java.lang.NoClassDefFoundError

4 个答案:

答案 0 :(得分:4)

档案 - >使高速缓存无效/重新启动...

答案 1 :(得分:3)

Java和Kotlin生成的类之间没有真正的区别。如果您的代码由Android Studio静态解析(应该如此),那么除非Gradle配置错误,否则必须运行。

答案 2 :(得分:2)

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

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()
  }
}

app build.gradle

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

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

答案 3 :(得分:1)

您只需像在Java中“正常”那样进行操作即可:

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

别忘了将Kotlin添加到您的项目拳头(在gradle文件中)。否则它将无法正常工作。