我在市场上有一个带有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就会变坏。我该如何解决这个问题?
答案 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