我在市场上有一个adMod横幅的应用程序,现在我正试图添加一些谷歌地图api到我的应用程序。
我知道如何单独处理admob库或谷歌地图api。但当我尝试使用adMob和Google Maps api (Google Play服务)运行这款应用时,它们似乎发生了碰撞或类似的事情。或者google-play-services.jar和googleleadmobadssdk .jar有相同的AdMob类名。也许由于这个原因,我得到了多个。dex文件。
我的控制台错误是:
输出出错:已经准备好了[2014-05-18 18:24:40]无法执行索引:多个索引文件定义Lcom/google/ads/AdRequest$ErrorCode;[2014-05-18 18:24:40 - WorkC 3.0.9 actionBar]转换为Dalvik格式失败:无法执行索引:多个索引文件定义Lcom/google/ads/AdRequest$ErrorCode;
我担心一旦我更新了应用程序版本,就会对我的adMob造成影响。我怎样才能解决这个问题呢?
你可以去掉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不再可用,所以你必须通过java代码加载广告在你的onCreate():
AdView adView = (AdView)this.findViewById(R.id.ad);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
然后在manifest的application标签中,Change:
<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"/>
不需要adMob.jar文件。Google Play Services(4.3.23)就足够了。
参见:https://developers.google.com/mobile-ads-sdk/docs/?hl=frhttps://developer.android.com/google/play-services/setup.html安装