2

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

我已经完成了所有(我相信过时的)步骤但这并没有帮助。为了清楚以防我做错了什么,我有:

  • 至少在上周五下载了最新的 Android 和 AdMob SDK。
  • 在 default.properties (我必须在项目的根目录中创建,因为我做不好)和 project.properties (我认为项目实际使用的)中设置“target=android-17”。
  • 在 AndroidManifest.xml 中设置 'android:minSdkVersion="3"'。
  • 将库添加到项目中(通过将 GoogleAdMobAdsSdk-6.2.1.jar 放在项目根目录的 libs 目录中)。
  • 添加了从此处com.google.ads.AdActivity复制到 AndroidManifest.xml 的内容。
  • 添加了对 AndroidManifest.xml 的权限,再次从同一位置复制。
  • 从这里复制代码和 XML 标记(和属性)并将它们添加到我的项目中(用我的发布者 ID 替换 MY_AD_UNIT_ID),尽管我还在代码中提出了使模拟器成为测试设备的请求。
  • 添加了带有广告样式的 attrs.xml。我相当肯定这是过时的建议,但我还是照做了。我使用了这个问题中的那个,虽然我改成com.admob.android.ads.AdViewcom.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

编辑:我认为它不会很有用,但应 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" />

我已经尝试了很多这样的变体,但没有成功。

4

2 回答 2

1

将此代码放在您的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 文件,并希望您也在构建路径中配置了它。

希望这可以帮助。

于 2012-12-19T07:15:24.177 回答
0

上面的代码可以工作,你也可以删除这些标签

    android:minSdkVersion="8"
    android:targetSdkVersion="8"
于 2012-12-19T07:21:39.247 回答