将Google Play服务添加到库项目

3
我正在开发一款地图库,使用Google Play Services。到目前为止一切顺利。问题在于:
  1. 我将Google Play Services库项目包含在我的地图库中(使用:属性 -> Android -> 添加库)。通过库内的客户端进行测试(取消选中库复选框并启动MainActivity),一切正常!
  2. 当我将我的地图库包含在示例客户端项目中时,该客户端项目无法访问Google Play Services。如果我在客户端项目中包含Google Play services,则会出现以下错误:

    [2013-07-18 08:40:04 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/android/gms/R$attr;

    [2013-07-18 08:40:04 - maps-sample-android] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/google/android/gms/R$attr;

Android不允许我自己包含Google Play Services或者使用它从我的库项目中,有没有解决这个问题的方法?

1
你是如何引用Google Play服务库项目的? - Raghunandan
你得到任何解决方案了吗?我现在也有同样的问题。 - Shalini
我在Android Studio中也遇到了同样的问题 :( - Raphael Royer-Rivard
你解决了吗?我也遇到了完全相同的问题…… - Zippy
2个回答

2
[2013-07-18 08:40:04 - Dex Loader]无法执行dex:多个dex文件定义了Lcom/google/android/gms/R$attr;

[2013-07-18 08:40:04 - maps-sample-android]转换为Dalvik格式失败:无法执行dex:多个dex文件定义了Lcom/google/android/gms/R$attr;

这些错误表明您有两个不同的jar文件,都试图声明相同的变量。也许您有2个不同版本的Google Play服务?


0
在您的库项目属性中的Java构建路径(顺序和导出选项卡)中,请确保已勾选Android依赖项框。
这将允许库项目与Google Play库一起导出。
然后,您就不需要在客户端项目中添加对Google Play的引用了。

确实已经打了勾...但是在我的客户端项目中仍然无法访问它的类... - danielrvt-sgb
在导入时是否复制了播放服务库到工作区(勾选“将项目复制到工作区”复选框)? - metalmonkeysoftware
2
是的,它被复制了...我真的认为不能使用Google Play服务在Android上发布地图库...如果它只是一个.jar文件,那将会更加容易... - danielrvt-sgb

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