2

我的应用程序很大程度上依赖于 JSON 库org.json.*。这个包是内置在 Android 标准库中的,这是我不知道的,因为我也将它包含在我的源代码树中。

我需要使用JSONArray.remove内置包不支持的函数 (),而它位于源代码分发 jar 中org.json(我包含在我的项目中)。所以会发生什么,一切都编译了,但我在运行时得到java.lang.NoSuchMethodError: org.json.JSONArray.remove

我的问题是,如何告诉 eclipse 或 Android 使用源代码树中的 org.json.* 而不是其内置版本?

还有一个子问题:这是个好主意吗?与官方源代码分发相比,内置 JSON 包可能有本机级别的改进或类似的改进吗?

4

1 回答 1

1

我的问题是,如何告诉 eclipse 或 Android 使用源代码树中的 org.json.* 而不是其内置版本?

你不能。您不控制运行时类路径,固件总是胜出。

欢迎您使用jarjar或类似的工具将您的org.json类副本移动到新包中。或者,找一个更好的 JSON 库——那里有很多。

于 2013-12-05T00:54:05.933 回答