我已为我的游戏设置了一个带横幅广告单元的AdMob帐户。通过互联网获取有关如何使用Cocos2d-x实现Android的AdMob的教程很简单,但现在我遇到了一个问题,我似乎无法找到解决方案。
我的横幅没有显示在屏幕顶部,我在Logcat中收到这三条消息:
I/Ads(19290): Starting ad request.
W/Ads(19129): There was a problem getting an ad response. ErrorCode: 0
W/Ads(19129): Failed to load ad: 0
这让我认为我正确实施了横幅代码,但其他东西却出错了。另一个奇怪的观察:如果我从我的清单中删除权限INTERNET
和ACCESS_NETWORK_STATE
,横幅显示,说我需要启用权限才能看到广告。
以下是我用来创建横幅的代码。我不认为它有什么问题,并且不会抛出异常,因为您可以从我上面复制粘贴的日志中看到。
private void adCreate() {
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID); // In my code I set the real value from the AdMob website
adView.setAdSize(AdSize.BANNER);
try {
AdView.LayoutParams layoutParams = new AdView.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
RelativeLayout relativeLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
relativeLayout.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
adView.setLayoutParams(layoutParams);
relativeLayout.addView(adView);
addContentView(relativeLayout, rlp);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("XXXXXXXXXX") // In my code I set the real value I got from Logcat
.build();
adView.loadAd(adRequest);
} catch (Exception e) {
Log.e("Ads", "AdMob Error: " + e);
}
// Setup AdListener
adView.setAdListener(new AdListener() {
public void onAdLoaded() {
Log.i("Ads", "onAdLoaded");
adView.bringToFront();
}
});
}
我不知道发生了什么,我甚至试图将我的设备存档在AdMob网站上并创建一个新的用作广告单元ID,但无济于事。
谢谢!
编辑:似乎错误0是'内部错误'。不知道这指向什么或错误可能来自何处。
答案 0 :(得分:1)
我现在感到愚蠢。我正在测试我朋友的手机,并且我不知道他使用的是AdAway root用户,导致AdMob收到无效的127.0.0.1请求。我禁用了AdAway,一切似乎都运行良好:)