【发布时间】:2015-04-14 17:54:40
【问题描述】:
多个 dex 文件定义 Lcom/google/ads/AdRequest$ErrorCode
最新的 ADT、最新的 SDK 工具 (22.3)。
我试过了:
- 清理/重建
- 更新 Eclipse
- 删除 bin 和 gen 文件夹
- 重启 Eclipse
- 使用 Ant 手动构建
- 加上其他一些东西
我所有的项目现在都针对 API lvl 19。
我不知道该怎么办。
谢谢
【问题讨论】:
标签: android
多个 dex 文件定义 Lcom/google/ads/AdRequest$ErrorCode
最新的 ADT、最新的 SDK 工具 (22.3)。
我试过了:
我所有的项目现在都针对 API lvl 19。
我不知道该怎么办。
谢谢
【问题讨论】:
标签: android
多个 dex 文件错误只是告诉您您包含来自不同来源的相同类文件。因此,重新启动 Eclipse 或使用 Ant 构建将无济于事,因为您的项目设置无效。
由于您没有指定使用的 jar,因此无法确定发生了什么。
但是,最新的 Google Play 库包含广告,我猜您会同时包含 Admob 和 Google Play 服务,它们显然包含相同的类。在这种情况下,您应该迁移您的代码以使用 Google Play 服务广告并从您的项目中删除 admob jar。
【讨论】:
*右键单击项目名称并选择构建路径。
*然后选择配置构建路径。
*从 Java Build Path 中选择选项卡 Order and Export。
*取消选中 .jar 库。
该错误通常是由于库中的多样性造成的。
【讨论】:
您检查过您的 xml 文件吗?我有同样的问题(还没有解决),我忘了从以下位置更改 adView 属性:
<com.google.ads.AdView
android:id="@+id/adView"
到
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
那么你也应该检查你的
xmlns:ads="http://schemas.android.com/apk/lib/com.google.android.gms.ads"
(不知道这是否正确......)
编辑: 找到这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="MY_AD_UNIT_ID"
ads:adSize="BANNER"/>
</LinearLayout>
(来源:https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals)
编辑2:
好的,现在我解决了我的问题。我真是个白痴…… 好吧,我将 AdMob SDK 集成到服务库中……我删除了它,一切又恢复了!所以删除 services_lib,下载它并再次导入,我猜应该可以。祝你好运!
【讨论】:
从我的项目中删除“GoogleAdMobAdsSdk-6.4.1.jar”后工作正常。 不要忘记将 Google Play 服务作为库添加到您的应用程序中。 问候!
【讨论】:
这是因为 Google Play 服务中有 google Ads。 这就是为什么你有多个 dex 错误。
http://developer.android.com/reference/com/google/android/gms/ads/AdRequest.html
【讨论】:
如果你也在使用google play服务,那就有冲突了。
【讨论】:
Eclipse 项目属性->Java 构建路径->排序和导出
取消选中 Android 私有库。
不要在你的项目中同时使用 google play service lib 的 jar 文件和库项目。
【讨论】: