You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android项目Kotlin scratch文件调用org.json类报错的解决咨询

解决Kotlin Scratch文件无法导入org.json的问题

你猜的没错——Android框架里的org.json类是绑定在Android SDK环境中的,Kotlin Scratch文件默认运行在标准JVM环境下,所以找不到这些类。不过完全不用依赖Android框架就能解决这个问题,因为有独立发行的org.json库,和Android自带的版本API完全兼容,直接就能用在JVM环境里验证你的JSON处理逻辑。

具体解决步骤

1. 给Scratch文件添加独立org.json依赖

在IntelliJ/Android Studio里,给Scratch文件添加依赖很简单:

  • 打开你的Kotlin Scratch文件(.kts
  • 点击右上角的「Configure Scratch File」按钮(或者右键文件,选择「Add Library Dependency...」)
  • 在弹出的搜索框里输入org.json:json,选择一个稳定的版本(比如20240303),点击「OK」添加

2. 修改Scratch代码(可选,但更规范)

虽然导入语句不用改,但为了让Scratch文件能直接运行,最好把代码放在main函数里(Kotlin脚本也可以直接写,但加main更清晰):

import org.json.JSONObject

fun main() {
    val jsonObject = JSONObject(
        """ {
            "data": ["user1", "user2", "user3"]
        } """
    )
    println(jsonObject["data"])
}

3. 运行验证

现在点击Scratch文件里的运行按钮,就能正常输出JSON里的data数组了,完全不用编译Android应用。

为什么这个方法可行?

这个独立的org.json:json库是官方从Android框架里抽离出来的独立发行版,源码和Android自带的org.json完全一致,API没有任何差异。也就是说你在Android项目里写的JSON处理逻辑,直接复制到这个Scratch文件里就能运行验证,不需要做任何修改。

备选方案:手动添加Jar包

如果不想用IDE的依赖管理功能,也可以:

  • 去Maven仓库下载org.json:json的Jar包
  • 把Jar包放到项目的libs目录下
  • 在Scratch文件里右键Jar包,选择「Add as Library」,之后就能正常导入使用了

内容的提问来源于stack exchange,提问作者olik79

火山引擎 最新活动