Android Studio中,我创建了一个虚拟项目来测试处理JSON的包Klaxon。因此,我将下面的代码放入onCreate中,确实更改了creatorButton按钮的文本。

class Product(val name: String)  // Kotlin, but could be Java
val product = Product("HDD")
val result = Klaxon().toJsonString(product)
creatorButton.text = result
Klaxonjcenter存储库中。因此,在Build.Gradle模块文件中,我添加了dependency组:
implementation 'com.beust:klaxon:5.0.1'

当我在Android手机中运行该应用程序后,该按钮将显示标签
{"Name":"HDD"}

之后,我想在Klaxon上深入测试IntelliJ IDEA,因此我不需要一直在模拟或在手机中运行想要测试的东西。

所以我用Kotlin创建了一个空的Gradle项目。
fun main() {
    class Product(val name: String)
    val product = Product("HDD")
    val result = Klaxon().toJsonString(product)  // Error
    println(result)
}

我按照this question中的提示进行操作,并在Project Structure中添加JAR库(不起作用),或者在libs文件夹中添加JAR库,然后运行“添加为库”(这也无效)

PS:我尝试编辑Gradle.build中的依赖项,但它不接受相同的Android Studio语法。

我该如何解决这种困扰?
不管我做什么,它总是在Klaxon call()的行上给出错误

最佳答案

我发现了另一种技巧,因为没有尝试使用与Gradle中相同的命令来编辑IntelliJ IDEA中的Android Studio,但在dependencies组内部却起作用:我尝试将implementationjcenter字符串一起使用,并使用filesfiletree命令(如documentation中所述)。

首先,我用Kotlin关闭了Gradle项目。

然后,我创建了一个不包含Kotlin的新Gradle项目(这是最重要的步骤),复制所有源代码并以stackoverflow问题中建议的相同方式添加JAR文件。

所以我检查File / Settings/ Editor / General / Auto Import中的选项Insert Import on Pasteall,而Add unambiguous import on the flyon

最后,当我使用Klaxon()函数时,Intellij IDEA询问缺少的导入,并且我已经使用Alt+Enter进行了确认。

源代码接收行

import com.beust.klaxon.Klaxon

现在,我的Kotlin代码发挥了魅力

顺便说一句,如果在项目树中(左侧)看到了External Library,则一个子节点就是klaxon.5.0.5.jar,这是我的库。它派生到com.beust.klaxon对类名的开放。

10-07 18:17