Android 内置了哪个版本的 org.json?

What version of org.json is built into Android?

我正在使用依赖于 org.json:json:20090211 的开源库。显然 API 版本 20090211 与 Android 提供的任何版本之间存在一些差异。当我启用 ProGuard 最小化时,我看到这个警告:

Warning: com.esri.core.geometry.JSONObjectEnumerator: can't find referenced method 'java.lang.String[] getNames(org.json.JSONObject)' in library class org.json.JSONObject

该方法存在于 JSONObject 的当前参考实现中,所以我假设它是在版本 20090211 之前的某个时间添加的,而不是在它之后删除的,这意味着 20090211 中包含的版本=32=]年纪大了。我想将该版本与 20090211 进行比较,看看需要做些什么才能使依赖于 20090211 的库与 Android.

兼容

Android 中包含什么版本的 org.json?

(我知道我可以重命名 org.json 并将依赖项更改为重命名的版本,但我想尽可能避免这种情况。这样的更改不太可能被上游接受。)

我不确定这个答案,但是Android版本可能对应的不是官方版本。此评论出现在 JSONObject 的 AOSP 源代码中:

// Note: this class was written without inspecting the non-free org.json sourcecode.

org.json 许可证与 MIT 许可证相同,但增加了一项:

The Software shall be used for Good, not Evil.

所以也许 Google 认为该条款过于严格,并认为有必要从头开始重新实施 org.json