我对新的admob有问题。
以下是我的代码,尝试在我的主要活动中创建并加载广告:
private void createAndLoadAd(String adUnitID, RelativeLayout rlRoot, View upperView){
adView = new AdView(this);
adView.setAdUnitId(adUnitID);
adView.setAdSize(AdSize.BANNER);
adView.setId(R.id.ad_view);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(AdView.LayoutParams.WRAP_CONTENT, AdView.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
rlRoot.addView(adView, params);
RelativeLayout.LayoutParams upperViewParams = (RelativeLayout.LayoutParams) upperView.getLayoutParams();
upperViewParams.addRule(RelativeLayout.ABOVE, R.id.ad_view);
upperView.setLayoutParams(upperViewParams);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
checkGooglePlayServices(this);
}
我的XML中有一个RelativeLayout,我正在尝试将广告放在ExpandableListView(仅限子)的下方。
这是我得到的:
W / Ads:收到广告回复时出现问题。 ErrorCode:0 W / Ads:
无法加载广告:0
我确切地知道我拥有AndroidManifest.xml中所需的所有权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
以下是gradle line:
compile 'com.google.android.gms:play-services:6.+'
我读到错误可能来自adUnitID,我尝试重新创建一个新错误,但没有用。
也许有一些新的规则,如果应用程序未在市场上发布,广告将无效?
以下是有关问题的日志:
01-31 09:48:37.687 19580-19580/me.frozened.rappel I/Ads﹕ Starting ad request.
01-31 09:48:37.872 19580-19580/me.frozened.rappel E/﹕ file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
01-31 09:48:37.872 19580-19580/me.frozened.rappel I/﹕ Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
01-31 09:48:37.887 19580-19580/me.frozened.rappel I/﹕ Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
01-31 09:48:37.912 19580-19580/me.frozened.rappel I/﹕ Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl
01-31 09:48:40.767 19580-19580/me.frozened.rappel W/KeyCharacterMap﹕ Load KCM of non-default device may incur unexpected result
01-31 09:48:48.217 19580-19617/me.frozened.rappel W/Ads﹕ There was a problem getting an ad response. ErrorCode: 0
01-31 09:48:48.222 19580-19580/me.frozened.rappel W/dalvikvm﹕ VFY: unable to resolve virtual method 3114: Landroid/webkit/WebView;.evaluateJavascript (Ljava/lang/String;Landroid/webkit/ValueCallback;)V
01-31 09:48:48.302 19580-19833/me.frozened.rappel W/﹕ init htc webcore
01-31 09:48:48.337 19580-19580/me.frozened.rappel W/Ads﹕ Failed to load ad: 0
编辑:
问题似乎并非孤立。我做了很多测试,从我的十次测试中,只有两次测试。我不明白,也许新的adob不能很好地工作?
我在以下设备上测试了这些应用程序:
部分手机正在使用最新版本的Google Play服务(我的HTC One X,我的Nexus 5,Galaxy Note 3)。我不知道其他的。
以下是我测试的两个应用: - Rappel&lt; - 第一个有问题的应用 - My Word Book&lt; - 我确定之前广告有效的旧应用 - BMI&lt; - 处于相同情况的朋友应用
所以我有两个假设:要么我在不能正常运行的手机上测试这些应用程序(我会相信它......),或者我忘了添加一些权限/代码。
另外,我的HTC One X没有SIM卡(我只使用互联网)。这可能是这款手机的问题吗?
答案 0 :(得分:2)
实际上,我的代码是对的&amp;我在我的android中有一个更新的谷歌播放服务库。我的admob帐户是全新的横幅广告&amp; interstial id's
它自动得到修复&amp;等待1-2天后开始收到广告回复。从那以后一切运作良好。
答案 1 :(得分:1)
在我的情况下,我忘了使用
.addTestDevice("1C51F744DXXXXXXXX64F06586C84EF")
您将在日志中获取设备ID。
答案 2 :(得分:0)
如果您使用的是自定义ROM ,例如 CyanogenMod ,也可能会发生这种情况,而Google应用未附带 G-Apps )默认情况下,像Play商店,Gmail。
所以你必须:
如果您已正确完成编码,现在应该会显示广告。