如何获得Android Studio';如何使用Java编译器识别Kotlin类?
我向最初用Java编写的Android Studio项目添加了一个包含三个类的Kotlin文件。该文件在androidstudio中编译得很好,项目一直在构建,直到我尝试获得一个Java类来与Kotlin类交互。Android Studio给了我以下错误:如何获得Android Studio';如何使用Java编译器识别Kotlin类?,java,android-studio,kotlin,classnotfound,Java,Android Studio,Kotlin,Classnotfound,我向最初用Java编写的Android Studio项目添加了一个包含三个类的Kotlin文件。该文件在androidstudio中编译得很好,项目一直在构建,直到我尝试获得一个Java类来与Kotlin类交互。Android Studio给了我以下错误: Java compiler: [path]/[project] app/src/main/java [project].jav error: cannot find symbol c
Java compiler:
[path]/[project]
app/src/main/java
[project].jav
error: cannot find symbol class Quiz_abTime
当我添加文件时,Android Studio抱怨gradle配置,但我运行了配置,它说所有使用Kotlin的模块都已配置
请注意,我已经尝试过使缓存无效并重新启动Android Studio,所以这不是问题所在
这是我的build.gradle
文件。模块首先:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.2.61'
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
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
}
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
现在,应用程序的build.gradle
:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 26
defaultConfig {
applicationId [application name deleted for SO]
minSdkVersion 16
targetSdkVersion 26
versionCode 6
versionName "2.0.5"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
implementation 'com.android.support:appcompat-v7:26.1.0' // where X.X.X version
implementation 'com.github.yukuku:ambilwarna:2.0.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
repositories {
mavenCentral()
}
这里还有另一个问题,我之所以把它包括进来,只是因为它可能是相关的。在我的主要应用程序中,我有以下内容:
import android.support.v7.app.ActionBar;
奇怪的是,ActionBar
以红色突出显示,它表示无法解析符号
ActionBar`。还有其他几个像这样高调的;这是在Android Studio要求升级后开始的。然而,至少这建立了;只有当我尝试从Java类访问Kotlin类时,构建才会失败
我以前在Android Studio中使用Java编写过Kotlin,这不是问题,但是有人能告诉我在哪里查找阻止Java编译器查看Kotlin类的问题吗?在这种情况下,Android Studio没有在Kotlin文件前加上一行重要的内容:
package [packagename]
我一加上这些,它就编译并运行得很好。我认为这是一种自然而然会发生的事情,但显然不是——或者至少不是在这种情况下,出于任何原因。它找不到的其他符号的问题显然是无关的。请访问此链接获取assistance@ViralThakker No,将Java源代码转换为Kotlin代码是一个完全不同的主题。它找不到的其他符号的问题通过删除Android Studio某处的
库
文件夹得到修复;如果你够努力的话,你会找到一个非常好的问题和答案。