Android 开发 java.lang.RuntimeException: Stub! at org.json.JSONObject.<init>(JSONObject.java:115) at

问题

Android 开发

java.lang.RuntimeException: Stub!
	at org.json.JSONObject.<init>(JSONObject.java:115)
	at com.example.assistingagriculture.activity.delete.Main.main(Main.java:9)

详细问题

笔者进行Android 开发,为了测试下述代码是否可以正常执行功能。
运行下述核心代码

import org.json.JSONObject;

public class Main {
    
    public static void main(String[] args) {
        String jsonStr = "{}"; // JSON 字符串,这里使用 {} 代替实际内容
        try {
            JSONObject jsonObject = new JSONObject(jsonStr); // 创建 JSON 对象
            JSONObject addressComponent = jsonObject.optJSONObject("addressComponent"); // 提取 addressComponent 对象
            if (addressComponent != null) {
                String adcode = addressComponent.optString("adcode"); // 从 addressComponent 对象中提取 adcode 字段的值
                System.out.println("adcode: " + adcode);
            } else {
                System.out.println("No addressComponent found in JSON.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

控制台报错

java.lang.RuntimeException: Stub!
	at org.json.JSONObject.<init>(JSONObject.java:115)
	at com.example.assistingagriculture.activity.delete.Main.main(Main.java:9)

解决方案一

直接在Android页面中调用,查看控制台输出是否符合预期
对于笔者而言,即
在这里插入图片描述

解决方案二

重新创建一个全新的 Java(非 Android)项目。

产生原因

问题产生的原因是在一个非 Android 项目中尝试使用 Android 特定的类库。在给定的代码中,使用了 org.json.JSONObject,这是 Android SDK 提供的一个类。但是,该代码是在一个普通的 Java 类中使用 main() 方法运行的,而不是在 Android 应用程序中。因此,当尝试运行此代码时,它会尝试加载 Android 相关的类,导致运行时异常。

更具体地说,错误消息中的 “Stub” 意味着运行时系统尝试加载的类只是一个占位符或桩(stub),而不是实际的实现。这是因为 Android SDK 在编译时会提供一个占位符版本的 android.jar,以便在编译期间引用 Android 类。但是,在运行时,必须在 Android 设备或模拟器上才能使用真正的 Android 类库。

因此,解决问题的关键在于要么将代码移植到 Android 项目中,并在 Android 设备或模拟器上运行,要么将项目调整为使用标准的 Java SDK,避免使用 Android 特定的类库。

解决原因

解决方案一:移植到 Android 项目中:将代码移植到一个 Android 项目中,并在 Android 设备或模拟器上运行。在 Android 项目中,可以正确地使用 org.json.JSONObject 类。
解决方案二:调整为使用标准的 Java SDK:如果不打算在 Android 平台上运行代码,可以调整项目使用标准的 Java SDK,并避免使用 Android 特定的类库。这样可以避免出现类似的运行时异常。

参考文献

JSON parsing throws error
产生原因以及解决原因部分内容 部分参考chatgpt

原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
请添加图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞滕人生TYF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值