在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
Klaxon
在jcenter
存储库中。因此,在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
组内部却起作用:我尝试将implementation
与jcenter
字符串一起使用,并使用files
或filetree
命令(如documentation中所述)。
首先,我用Kotlin
关闭了Gradle
项目。
然后,我创建了一个不包含Kotlin
的新Gradle
项目(这是最重要的步骤),复制所有源代码并以stackoverflow问题中建议的相同方式添加JAR文件。
所以我检查File / Settings/ Editor / General / Auto Import
中的选项Insert Import on Paste
是all
,而Add unambiguous import on the fly
是on
。
最后,当我使用Klaxon()
函数时,Intellij IDEA
询问缺少的导入,并且我已经使用Alt+Enter
进行了确认。
源代码接收行
import com.beust.klaxon.Klaxon
现在,我的Kotlin代码发挥了魅力
顺便说一句,如果在项目树中(左侧)看到了
External Library
,则一个子节点就是klaxon.5.0.5.jar
,这是我的库。它派生到com.beust.klaxon
对类名的开放。