簡體   English   中英

使用Gradle和IntelIJ時Kotlin中未解析的參考“ java”

[英]Unresolved reference “java” in Kotlin while using Gradle and IntelIJ

我想使用kotlin和gradle創建一個簡單的電報機器人。 我已經成功導入了ort.telegram庫,但是它無法解析標准的Java庫。 在gradle.build配置下面:

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This is a general purpose Gradle build.
 * Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds/
 */

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.telegramVersion = '3.5'

    repositories {
        maven { url "http://repo.maven.apache.org/maven2/" }
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
       )
    }
}

apply plugin: "java-library"
apply plugin: "kotlin"
apply plugin: "java"


apply plugin: 'application'

mainClassName = 'main.Main'

repositories {
    maven { url "http://jcenter.bintray.com" }
}

dependencies {
    implementation 'org.hibernate:hibernate-core:3.6.7.Final'
    api 'com.google.guava:guava:23.0'
    testImplementation 'junit:junit:4.+'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile "org.telegram:telegrambots:3.6"

}


kotlin {
    experimental {
        coroutines "enable"
    }
}

compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
compileTestKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Main.kt:

import org.telegram.*
import org.telegram.telegrambots.TelegramBotsApi
import org.telegram.telegrambots.api.objects.Update
import org.telegram.telegrambots.bots.TelegramLongPollingBot
import java.util.*

fun main(args : Array<String>) {
    println("Hello, world!")
}

gradle安裝和構建命令已成功完成。 任何幫助將不勝感激

import語句不完整。 您可以像使用org.telegram.*一樣導入整個java.util包:

import java.util.*

或者更好的是,僅導入所需的類,例如:

import java.util.List

有關完整參考,請參閱Kotlin文檔中有關包和導入的內容

附帶說明一下,讓IntelliJ通過組織導入來幫助您。

我可以假設原因可能如下:您沒有在Main.kt中指定包

package main // <--- based on your build.gradle file

import org.telegram.*
import org.telegram.telegrambots.TelegramBotsApi
import org.telegram.telegrambots.api.objects.Update
import org.telegram.telegrambots.bots.TelegramLongPollingBot
import java.util.*

fun main(args : Array<String>) {
    println("Hello, world!")
}

為以防萬一,在的build.gradle文件中指定Main.kt,因為你需要千噸后綴添加到一個類名主類:

mainClassName = "main.MainKt"

更新 :另一個原因可能是項目結構不正確。 在您的情況下,項目結構必須如下:

.
├── build.gradle
└── src
    └── main
        └── kotlin
            └── main
                └── Main.kt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM