【发布时间】:2014-07-14 07:55:23
【问题描述】:
Ok 所以我现在是愚蠢的问题..
我正在尝试在我的应用中使用 Google Play 服务。
我在我的应用程序和 BaseGameUtils 中都引用了库,google play services,然后我将 google play services 作为库引用到 BaseGameUtiles 库,我遇到了这个问题.. Unable to execute dex: Multiple dex files定义 Lcom/google/android/gms/ads/AdActivity; "
通常这意味着您有两个具有相同类名的 .jar 文件。我唯一的问题是我不知道哪些 jar 文件具有相同的类。
另外,我的 libs 文件夹中没有 google-play-services 作为 jar,也没有在“java 构建路径”菜单中将其添加为外部 jar。
所以我只有两个依赖项 google-play-servies 和 BaseGameUtils,后者也使用 google-play-servies 作为库。但在“私人图书馆”中,我为我添加的所有 .jar 下拉选项,然后它还包含 google-play-services。我认为不应该在那里..
如果我取消选中“私有库”选项,它会加载,但随后出现“NoClassDefFoundError Android 项目”错误。我将 ADT 更新到 23.0.2 或者今天 7/13/14 的最新版本 -
所以如果我检查“私有库”选项我得到多个 dex 文件问题,这就是问题的关键,我认为这与 android 支持库 v4.但是否“多个 dex 文件定义了 Lcom/google/android/gms/ads/AdActivity;”是我得到的错误。
如果我取消选中“私人图书馆”选项,我会得到 NoClassDefFoundError 呃.. 有人能告诉我发生了什么吗?
这是我所做的照片.. 在你要求我做之后.. 先生.. rahandandn(抱歉毁了你的名字)
它向我展示了更多问题..
这是 basegameutiles 的 java 构建路径菜单选项。
尝试使用 google play 服务获取排行榜和成就。
他们说将 google play 服务用作您的应用程序和 BaseGameUtils 的库。
他们还说使用谷歌平台服务作为 BaseGameUtils 的库。
当我这样做时..我明白了
"无法执行dex:多个dex文件定义了Lcom/google/android/gms/ads/AdActivity; "
这意味着两个同名的jar文件或具有相同类名的类似文件..
好的,这意味着删除重复的..但是家伙在哪里?
这是 google play 服务的 java 构建路径和顺序导出。
这里有一些关于 BaseGameUtils 的信息
最后是我正在使用的应用程序..
【问题讨论】:
-
检查您的项目库文件夹。你有重复的罐子吗?它们可能是不同的版本,在这种情况下,您可以将最新的支持库复制到您的项目库文件夹
-
@raghunandan uhm.. 我的 lib 文件夹中每个 jar 只有 1 个副本..
-
从图片中看,jar 位于 android 私有库中,也位于 Android 4.4w 以上。检查他们
-
你的问题是 jars 应该只在你的 andorid 私有库中。如果您引用依赖项下的库项目。请确保你摆脱重复的罐子。
-
@raghunandan 好的,谢谢先生的帮助,我想我理解了这个问题.. 你是说我在 libs 文件夹中添加的库不应该出现在我的“java构建路径”中“这意味着停止添加外部罐子,其次你说如果我添加一个库,它将显示在 android 依赖项下拉列表中,但它不需要在那里,因为它们只需要在 android 库中放置场景下来。。是这样吗?如果是,我如何删除 android 依赖项下拉菜单中的库?
标签: java android google-play-services noclassdeffounderror dex