adMob.jar库和google play service.jar没有合作

时间:2014-05-18 15:56:46

标签: android google-maps admob google-play-services

我在市场上有一个带有adMod横幅的应用,现在我正在尝试将一些Google Maps api添加到我的应用中。

我知道如何单独处理adMobs库或Google Maps API。但是,当我尝试使用adMob和Google Maps api(Google Play服务)运行该应用时,似乎他们发生了碰撞或类似情况。或者google-play-services.jar和GoogleAdMobAdsSdk.jar与AdMob具有相同的类名。也许是因为这个原因我得到了多个.dex文件。

我的控制台上的错误是:

编写输出的麻烦:已经准备好了 [2014-05-18 18:24:40 - Dex Loader]无法执行dex:多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode; [2014-05-18 18:24:40 - WorkC 3.0.9 actionBar]转换为Dalvik格式失败:无法执行dex:多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode;

我担心一旦更新应用程序版本,我的adMob就会变坏。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您可以删除jar文件,并将广告和地图用于Google Play服务。进行以下更改:

在您的布局中,从以下位置更改ad xml命名空间:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

   -----/>

致:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"

   ----/>

然后,改变:

 <com.google.ads.AdView 
 android:id="@+id/ad"
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"
 android:layout_gravity="bottom|center" 
 android:layout_marginTop="300dp" 
 ads:adSize="BANNER"
 ads:adUnitId="***************" 
 ads:loadAdOnCreate="true" />

致:

<com.google.android.gms.ads.AdView
 android:id="@+id/ad"
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"
 android:layout_gravity="bottom|center" 
 android:layout_marginTop="300dp" 
 ads:adSize="BANNER"
 ads:adUnitId="***************" />

请注意,广告:loadAdOnCreate不再可用,因此您必须通过onCreate()中的java代码加载广告:

AdView adView = (AdView)this.findViewById(R.id.ad);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

然后在您的清单的应用程序标签中,更改:

<activity android:name="com.google.ads.AdActivity"/>

为:

<activity android:name="com.google.android.gms.ads.AdActivity" 
                  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

添加:

 <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version"/>

不要忘记权限:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
   <uses-permission android:name="android.permission.INTERNET"/>

答案 1 :(得分:1)

您不需要adMob.jar文件。 Google Play服务(4.3.23)就足够了。

请参阅:https://developers.google.com/mobile-ads-sdk/docs/?hl=fr https://developer.android.com/google/play-services/setup.html#Install