为什么AdMob加载广告时我的Android活动会关闭?

为什么AdMob加载广告时我的Android活动会关闭?,android,android-activity,admob,Android,Android Activity,Admob,我一直在按照说明将AdMob广告放在一个正常工作的Android应用程序中。该应用程序有2个活动。其中一个只能从第一个到达。我目前正在为第二个活动添加广告。我尝试了在onCreate方法中以编程方式创建AdView,并将适当的代码添加到活动的XML布局文件中。在这两种情况下,活动将退出第二个活动并转到第一个活动,就好像在收到广告(或至少是网络上的一些广告数据)时按下了后退按钮一样。如果我更改代码以不发出添加请求(即使我以编程方式添加广告,但只是不调用loadAd),或者如果我关闭netwrok访

我一直在按照说明将AdMob广告放在一个正常工作的Android应用程序中。该应用程序有2个活动。其中一个只能从第一个到达。我目前正在为第二个活动添加广告。我尝试了在
onCreate
方法中以编程方式创建
AdView
,并将适当的代码添加到活动的XML布局文件中。在这两种情况下,活动将退出第二个活动并转到第一个活动,就好像在收到广告(或至少是网络上的一些广告数据)时按下了后退按钮一样。如果我更改代码以不发出添加请求(即使我以编程方式添加广告,但只是不调用
loadAd
),或者如果我关闭netwrok访问,则我看不到任何广告,但我的活动也不会退出。这可能是什么原因造成的

我已经经历了所有的步骤(我相信已经过时了),但那没有帮助。为了以防万一我做错了什么,我:

  • 至少在上周五下载了最新的Android和AdMob SDK
  • 在default.properties中设置'target=android-17'(我必须在项目的根目录中创建,因为我无法确定)和project.properties(我认为项目实际使用的是它)
  • 在AndroidManifest.xml中设置“android:minSdkVersion=“3”
  • 将库添加到项目中(通过将GoogleAddMobaDSDK-6.2.1.jar放置在项目根目录的libs目录中)
  • 添加了从复制到AndroidManifest.xml的
    com.google.ads.AdActivity
  • 添加了对AndroidManifest.xml的权限,再次从同一位置复制
  • 从中复制了代码和XML标记(以及属性),并将它们添加到我的项目中(将我的\u AD\u UNIT\u ID替换为我的发布者ID),尽管我也在代码中提出了将emulator作为测试设备的请求
  • 添加了带有广告样式的attrs.xml。我相当肯定这是一个过时的建议,但我还是照做了。虽然我将
    com.admob.android.ads.AdView
    更改为
    com.google.ads
    ,但我还是使用了中的一个
如果你想帮助我,我想你会想知道的下一件事是LogCat说的。不多:

09-02 14:33:34.861: I/Ads(12839): adRequestUrlHtml: <html><head><script src="http://media.admob.com/sdk-core-v40.js"></script><script>AFMA_getSdkConstants();AFMA_buildAdURL({"msid":"com.Package.Name","hl":"en","bas_off":0,"simulator":1,"preqs":0,"slotname":"a150cbaa53d9d3d","js":"afma-sdk-a-v6.2.1","isu":"B3EEABB8EE11C2BE770B684D95219ECB","u_audio":4,"cap":"m,a","cipa":0,"u_sd":1.5,"net":"ed","u_h":533,"oar":0,"session_id":"4834854664722735718","seq_num":"1","app_name":"1.android.com.Package.Name","bas_on":0,"kw":[],"u_w":320,"gnt":3,"adtest":"on","format":"320x50_mb","carrier":"310260","ad_pos":{"visible":0,"width":0,"height":0,"x":0,"y":0},"ptime":0});</script></head><body></body></html>
09-02 14:33:35.111: D/dalvikvm(12839): GC freed 8784 objects / 437720 bytes in 64ms
09-02 14:33:37.101: I/Ads(12839): Received ad url: <url: "http://googleads.g.doubleclick.net:80/mads/gma?msid=com.Package.Name&hl=en&bas_off=0&preqs=0&js=afma-sdk-a-v6.2.1&isu=B3EEABB8EE11C2BE770B684D95219ECB&u_audio=4&cap=m%2Ca&cipa=0&u_sd=1.5&net=ed&u_h=533&oar=0&session_id=4834854664722735718&seq_num=1&app_name=1.android.com.Package.Name&bas_on=0&kw&u_w=320&gnt=3&adtest=on&format=320x50_mb&carrier=310260&ptime=0&u_so=p&output=html&region=mobile_app&u_tz=0&client_sdk=1&ex=1&slotname=a14e8f77524dde8&kw_type=broad&gsb=3g&caps=interactiveVideo_th_autoplay_mediation_sdkAdmobApiForAds_di&jsv=41" type: "admob" afmaNotifyDt: "null" useWebViewLoadUrl: "false">
09-02 14:33:37.111: I/Ads(12839): Request scenario: Online server request.
09-02 14:33:38.061: I/jdwp(12861): received file descriptor 10 from ADB
09-02 14:33:38.091: D/ddm-heap(12861): Got feature list request
09-0214:33:34.861:I/Ads(12839):地址sturlhtml:AFMA_getSdkConstants();AFMA_buildAdURL({“msid”:“com.Package.Name”,“hl”:“en”,“bas_off”:0,“模拟器”:1,“preqs”:0,“slotname”:“a150cbaa53d9d3d”,“js”:“AFMA-sdk-a-v6.2.1”,“isu”:“B3EEABB8EE11C2BE770B684D95219ECB”,“u音频”:4,“cap”:“m,a”,“cipa”:0”,“u-sd”:1.5,“net”:“ed”,“u-h”:533,“oar”:0,“session_-id”48348ee11c2be770b770b684d8b498e8”,“sequ.com”,“安卓软件包名”:“安卓程序包”:,“bas_on”:0,“kw”:[],“u_w”:320,“gnt”:3,“adtest”:“on”,“format”:“320x50_mb”,“carrier”:“310260”,“ad_pos”:{“visible”:0,“width”:0,“height”:0,“x”:0,“y”:0},“ptime”:0});
09-02 14:33:35.111:D/dalvikvm(12839):GC在64ms内释放了8784个对象/437720个字节
09-02 14:33:37.101:I/Ads(12839):收到的广告url:
09-02 14:33:37.111:I/Ads(12839):请求场景:在线服务器请求。
09-02 14:33:38.061:I/jdwp(12861):从ADB收到文件描述符10
09-0214:33:38.091:D/ddm堆(12861):获取功能列表请求
编辑: 我认为这不是很有用,但应suleman khan的要求,这里是我当前的XML

<com.google.ads.AdView android:layout_width="wrap_content"
    android:layout_height="wrap_content" ads:adUnitId="a150cbaa53d9d3d"
    ads:adSize="SMART_BANNER" android:id="@+id/adView" ads:refreshInterval="60" 
    ads:testDevices="TEST_EMULATOR"
    ads:loadAdOnCreate="true" />


我已经尝试了许多这方面的变体,但都没有成功。

将此代码放在xml中:

<com.google.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_alignParentTop="true"
                         android:layout_height="wrap_content"
                         ads:adUnitId="@string/my_publisher_id"
                         ads:adSize="SMART_BANNER"
                         ads:loadAdOnCreate="true"/>

希望您已添加您的发布者id

将此项放在清单文件中的活动之后:

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

正如您所说的,您已经在项目的libs中添加了jar文件,希望您也在buildpath中配置了它


希望这能有所帮助。

以上代码可以正常工作,您也可以删除这些标记

    android:minSdkVersion="8"
    android:targetSdkVersion="8"

发布更精确的.xml代码。@Edward.D.Baum:集成AdMob广告后,我遇到了类似的问题。我的主要活动是TabActivity,我正在选项卡上方显示广告。选择特定选项卡并在其中导航一些活动,然后按Backpress键而不是返回到上一个活动后,应用程序将退出。我已将我的问题发布在此链接中。您能告诉我您是否能够解决您的问题,因为我在尝试解决方法后仍然无法找到解决方案吗?@IngridCooper抱歉。我在某个时候把它修好了,但我已经记不得几个月了。我查看了我的版本历史记录,可能是修复程序在
project.properties
中为
target
指定了最新版本,但我对此不确定。编辑:现在我刚读了我的问题,似乎是在我修正之前做的。我真的不知道我做了什么。