为什么Maven Central上的Android版本不包含Google APIs(地图)?

5
大多数Android SDK的JAR现在都在Maven中央库中,但是Google API版本的SDK没有。你知道为什么吗?是否有限制添加它们?
更新:我不想要绕过方法(例如将它们本地添加到我的repo)。
1个回答

7

根据Android SDK最终用户许可协议的规定,以下行为是被禁止的:

1.1 Android软件开发工具包(在本许可协议中称为“SDK”,特指Android系统文件、打包API和Google API插件)受此许可协议的条款约束。该许可协议构成您和Google之间关于您使用SDK的法律约束合同。

... ...

3.3 除非适用第三方许可证规定的程度,否则您不得将SDK用于任何本许可协议未明确允许的目的。 您不得:(a)复制(仅限备份目的),修改,适应,重新分发,反编译,反向工程,反汇编或创建SDK或SDK任何部分的衍生作品; 或(b)将SDK的任何部分加载到移动手持设备或任何其他硬件设备上,除非是个人电脑,将SDK的任何部分与其他软件组合,或者分发包含SDK任何部分的任何软件或设备。

Android for Maven的方法是从源代码编译android.jar,并提取源文件和资源文件来复制SDK中的android.jar。正如您所看到的,某些Google API插件是闭源的,例如Maps,因此显然无法使用该方法。

好消息是,Android团队开始重新构建构建系统(更多详情请参见此处),希望通过Android团队在中央存储库中管理闭源jar文件,从而解决这个问题,请查看Manfred在此处的回复。


感谢你的回答并指出实际的Google讨论组线程。它看起来非常有前途,大多数与Android工业化相关的问题都将得到解决。 - Snicolas
这种情况在过去一年中有没有改变? - ahsteele

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接