您好 我尝试在Android手机上制作一些显示广告的示例程序,并尝试在v2.2的模拟器上进行测试 代码中的所有内容似乎都很好,但调试器中的AdListener说:
响应消息为零或为空;
onFailedToReceiveAd(没有要显示的广告)。
有什么方法可以成为我的错吗?有没有人遇到同样的问题? 继承人的代码 清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.AdTest"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AdTest"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- AdMobActivity definition -->
<activity android:name="com.google.ads.AdActivity"
android:configChanges="orientation|keyboard|keyboardHidden" />
</application>
<uses-sdk android:minSdkVersion="7"></uses-sdk>
<!-- AdMob SDK requires Internet permission -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
布局xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
和活动代码
package com.AdTest;
import com.google.ads.*;
import com.google.ads.AdRequest.ErrorCode;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
public class AdTest extends Activity implements AdListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout layout = (LinearLayout)findViewById(R.id.main);
AdView adView = new AdView(this, AdSize.BANNER, "anonymouse");
// Unit ID is correct, I changed it on purpose while pasting here
adView.setAdListener(this);
layout.addView(adView);
AdRequest request= new AdRequest();
adView.loadAd(request);
}
public void onFailedToReceiveAd(AdView adView)
{
Log.d("AdListener", "onFailedToReceiveAd");
}
public void onFailedToReceiveRefreshedAd(AdView adView)
{
Log.d("AdListener", "onFailedToReceiveRefreshedAd");
}
public void onReceiveAd(AdView adView)
{
Log.d("AdListener", "onReceiveAd");
}
public void onReceiveRefreshedAd(AdView adView)
{
Log.d("AdListener", "onReceiveRefreshedAd");
}
@Override
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
Log.d("AdListener", "onFailedToReceiveAD");
}
@Override
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onReceiveAd(Ad arg0) {
Log.d("AdListener", "Received succesfully");
}
}
答案 0 :(得分:2)
我遇到了与
相同的问题onFailedToReceiveAd(无广告展示)。
由于某些原因,AdMob似乎没有为我们的应用发送广告内容。即使我处于测试模式,仍然没有广告。
我在AdMob上创建自己的家庭广告以验证我的申请。这是一种比测试模式更简单的开发方式。
答案 1 :(得分:2)
我在我的Activity上实现了AdListener并将其设置为AdView侦听器,然后添加了以下内容
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1)
{
Log.d("AdMob", "Failed to receive an Ad. Requesting a new one..." + arg1);
arg0.stopLoading();
arg0.loadAd(new AdRequest());
}
答案 2 :(得分:1)
我也有同样的问题。所以我更改了代码以将测试模式设置为true,然后Admob测试广告开始在模拟器上显示。在OnCreate()方法中尝试这个:
LinearLayout layout = (LinearLayout)findViewById(R.id.main);
AdView adView = new AdView(this, AdSize.BANNER, "anonymouse");
// Unit ID is correct, I changed it on purpose while pasting here
adView.setAdListener(this);
AdRequest request = new AdRequest();
request.setTesting(true);
adView.loadAd(request);
如果您在真实设备上运行此功能但仍无法显示广告,那么我猜它可能与Admob填充率有关。
答案 3 :(得分:1)
将测试模式更改为true。请注意,在当天至少进行3次访问尝试之前,广告不会显示。
答案 4 :(得分:1)
最新的admob SDK 4.0.4似乎不会在1.5设备上展示广告。
在模拟器中,它适用于1.6+,但不适用于1.5。
我认为这是来自AdSense的新交叉广告。据我所知,SDK现在将webview包装为视图的可视组件,以便它可以发布不同类型的广告。仔细查看日志显示WebView.multitouch已启用 - 因为Apple不会支持多点触控(对于我们Java开发人员),因为Apple将玩具扔出婴儿车并拥有dummyspit(据我所知,他们认为只允许他们使用一次使用两个手指..)并且可能在webview上启用多点触控会导致内部异常并且视图永远不会被创建,因此无法从admob http服务器接收HTML回复。
另见link
答案 5 :(得分:0)
1 /获取最新的SDK版本
2 /尝试使用您的发布商ID的admob演示
3 /在测试模式下尝试(这应该始终有效)
4 /尝试添加一些样本房屋广告(当没有其他广告可用时显示)
5 /尝试更改关键字
通常,admob会将详细错误打印到日志中(ID丢失,清单中缺少活动等)。
答案 6 :(得分:0)
我完成了admob集成,它在设备和模拟器上运行。
所以,请尝试以下代码:
我认为您必须从main.xml中删除textview
并试试这个:
1)在你的admob a / c中创建新的应用程序 2)然后简单地用新的
替换先前app的id试试兄弟。
答案 7 :(得分:0)
我也遇到了这个问题。您可以在加载之前尝试自定义请求。像这样:
AdRequest re = new AdRequest();
//re.setTesting(true);
re.setGender(AdRequest.Gender.FEMALE);
adview.loadAd(re);
我把我的例子,apk文件和源代码放在这里,你可以尝试: