我的应用程序很大程度上依赖于 JSON 库 org.json.*
。这个包内置于 Android 标准库中,我不知道这一点,因为我也将它包含在我的源代码树中。
我需要使用内置包不支持的函数 (JSONArray.remove
),但它位于 org.json
的源分发 jar 中>(我包含在我的项目中)。所以发生的情况是,一切都编译完毕,但我在运行时得到 java.lang.NoSuchMethodError: org.json.JSONArray.remove 。
我的问题是,如何告诉 eclipse 或 Android 使用源代码树中的 org.json.* 而不是其内置版本?
还有一个子问题:这是一个好主意吗?与官方源代码分发相比,内置 JSON 包是否可以进行 native 级别的改进或类似的改进?
最佳答案
My question is, how can I tell eclipse or Android to use the org.json.* from my source tree instead of its built-in version?
你不能。您无法控制运行时类路径,并且固件总是获胜。
欢迎您访问use jarjar
或类似的工具将 org.json
类的副本移动到新包中。或者,找到一个更好的 JSON 库——那里有很多这样的库。
关于android - 更改或升级内置 org.json 库是否可能且是个好主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20389105/