Android内置了什么版本的org.json?

Kev*_*ede 9 android org.json

我正在使用依赖的开源库org.json:json:20090211.显然20090211,Android和版本之间存在一些API差异.当我启用ProGuard最小化时,我看到此警告:

警告:com.esri.core.geometry.JSONObjectEnumerator:在库类org.json.JSONObject中找不到引用的方法'java.lang.String [] getNames(org.json.JSONObject)'

该方法存在于当前的参考实现中JSONObject,因此我假设它在版本之前的某个时间添加20090211,而不是在它之后删除,这意味着Android中包含的版本较旧.我想对这个版本进行区分,20090211看看需要做些什么才能使依赖于20090211与Android兼容的库.

Android中包含哪个版本的org.json?

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

Kev*_*ede 13

我不确定这个答案,但Android版可能对应没有正式版.此评论出现在AOSP来源中JSONObject:

// Note: this class was written without inspecting the non-free org.json sourcecode.
Run Code Online (Sandbox Code Playgroud)

org.json许可证与MIT许可证相同,只增加一个:

本软件应用于Good,而不是Evil.

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

  • 这确实很烦人,因为两者不兼容。使用官方版本org.json的第三方库在Android应用程序中使用时会被破坏。因此,我在自己的项目中使用另一个包名称 fork 了 org.json 的官方版本。恕我直言,这应该由谷歌完成。 (4认同)