我正在使用依赖于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
并将依赖项更改为重命名的版本,但如果可能的话我想避免这种情况。这种更改不太可能被上游接受。)
答案 0 :(得分:10)
我不确定这个答案,但Android版可能对应没有正式版。此评论显示在JSONObject
的AOSP来源中:
// Note: this class was written without inspecting the non-free org.json sourcecode.
org.json许可证与MIT许可证相同,只增加一个:
本软件应用于善,而不是邪恶。
因此,Google可能认为该条款过于严格,并认为需要从头开始重新实现org.json
。