【发布时间】:2019-07-12 14:45:28
【问题描述】:
Android Studio 3.4.2
在 build.gradle 中:
buildscript {
ext.kotlin_version = '1.3.41'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
在 app/build.gradle 中:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.29.0'
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
在我的 android 项目中,我有 java 类的活动 - LoginActivity.java
导入android.app.Activity; 导入android.os.Bundle;
public class LoginActivity extends Activity{
private void testJavaMethod() {
// this ia a java code
String testJava = "Hello Java world";
}
private void testKotlinMethod() {
// this ia a Kotlin method
val testKotlin = "Hello Kotlin world"
}
在方法 testJavaMethod() 中成功编译。
但是testKotlinMethod() 不能编译。
这一行有错误:
val testKotlin = "Hello Kotlin world"
错误信息: 无法解析符号“val”
问题是:
JAVA 文件中的 Android 项目是否有可能在 Java 上写入一个方法,而在 Kotlin 上写入另一个方法?
【问题讨论】:
-
...Java 是 Java,Kotlin 是 Kotlin。虽然这样做在技术上可行,但您需要有一个统一解析和字节码生成的机制。即使这是任何人都感兴趣的事情,在一个文件中混合两种语言也会非常令人困惑。我什至不清楚你为什么想要这样的东西。
标签: android kotlin kotlin-android-extensions