【发布时间】:2019-12-07 23:52:21
【问题描述】:
我们的 Android 应用有一个包,其中仅包含与 Android 分离的纯 Java 代码。我需要在这个包中使用 JSON,并尝试导入 official JSON library。虽然导入成功,并且我可以在代码中使用 JSON,但它拒绝工作。我经常遇到同样的异常:
java.lang.NoSuchMethodError: 没有静态方法 g(Ljava/lang/String;)Ljava/lang/Object;在类 Lorg/json/JSONObject 中;或其超类('org.json.JSONObject' 的声明出现在 /system/framework/core-libart.jar 中)
No virtual method b()Z in class Lorg/json/JSONObject; or its super classes (declaration of 'org.json.JSONObject' appears in /system/framework/core-libart.jar)
我不知道我为什么会得到这个。我已经阅读过,这是由于与 Android 包含的 JSON 库发生冲突,但这仅在纯 Java 库中使用,并且与 Android 的任何代码交互都涉及字符串或 long,而不是 JSON
有人经历过吗?或者对如何在这个纯 java 包中使用 JSON 有什么建议?
我尝试导入一个非常旧版本的 JSON 库,以防它是由于某种冲突而导致我使用较新的方法,但没有骰子。同样的错误。还尝试导入 jar 而不是使用 gradle。
这用于ORMLITE 中数据库的简单getter 和setter。这是一个示例,其中 mExtraFlag 是一个字符串。也导致问题的方法是来自 JSONObject 的 toString 以及方法:valueToString、StringToValue 等...
public JSONObject getExtraFlag() {
return new JSONObject(mExtraFlag);
}
【问题讨论】:
标签: java android json android-studio gson