当前位置: 首页 > 知识库问答 >
问题:

如何让Android Studio的Java编译器识别Kotlin类?

章德惠
2023-03-14

我向最初用Java编写的Android Studio项目添加了一个包含三个类的Kotlin文件。该文件在Android Studio中编译得很好,项目一直在构建,直到我尝试获得一个Java类来与Kotlin类交互为止。Android Studio给了我以下错误:

Java compiler:
   [path]/[project]
      app/src/main/java
         [project].jav
            error: cannot find symbol class Quiz_abTime

当我添加文件时,Android Studio抱怨gradle配置,但我运行配置,它说所有使用静态编程语言的模块都已配置。

请注意,我已经尝试过使缓存无效并重新启动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"
        }
    }
}

现在,应用程序的构建。格拉德尔:

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以红色突出显示,它表示它无法解析符号。还有其他几个像这样的强光灯;这是在Android Studio要求升级之后开始的。然而,至少这建立了;只有当我尝试从Java类访问Kotlin类时,构建才会失败。

我以前在Android Studio中用Java做过静态编程语言,这不是问题,但它有人能告诉我在哪里可以找到阻止Java编译器看到静态编程语言类的问题吗?


共有1个答案

慕飞章
2023-03-14

在这种情况下,Android Studio没有在Kotlin文件的前面加上一行重要的内容:

package [packagename]

我一加上这句话,它就编译得很好,运行得很好。我认为这是自动完成的,但显然不是——或者至少在这种情况下不是,无论出于什么原因。它找不到的其他符号的问题显然是无关的。

 类似资料:
  • 我已经下载了OpenNLP工具,在为我的bash文件添加了正确的路径后,我能够让命令行工具运行,但我不知道如何让api文件与我的IDE(Netbeans)一起工作 对于命令行工具,我将指向/bin目录的路径。/lib目录中有四个jar文件:jwnl-1.3.3。jar,opennlp-maxent-3.0.3。jar,opennlp-tools-1.5.3。jar,opennlp-uima-1.5

  • 我试图遵循这个解决方案,为什么JavaFX不包含在Ubuntu Wily(15.10)上的OpenJDK 8中?,但不幸的是已经过时了。我确实在这里找到了我认为需要的包openjfx:https://launchpad.net/~tj/归档/ubuntu/java-for-14.04 该软件包可以很好地安装在/usr/lib/jvm/java-8-openjdk-amd64/jre/lib下,我可

  • 本文向大家介绍AndroidStudio:手势识别,包括了AndroidStudio:手势识别的使用技巧和注意事项,需要的朋友参考一下 一内容:设计一个手写字体识别程序。 二实现 ①建立一个存放手写字体的数据库 ②activity_main.xml 3.MainActivity.java 三效果 以上所述是小编给大家介绍的AndroidStudio手势识别详解整合,希望对大家有所帮助,如果大家有任

  • 本周更新AndroidStudio时,我被迫添加了AnnotationProcessor: (甚至不知道为什么。) 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。kotlin-compiler-Embeddeble-1.3.11。jar(org.jetbrains.kotlin:kotlin编译器可嵌入:1.3.

  • 我是不是遗漏了什么,或者有什么特别的原因不起作用? 谢了!