我对新的 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:获取广告响应时出现问题。错误代码:0 W/广告:
广告加载失败: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 行:
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
Edit :
这个问题似乎并不是孤立的。我做了很多测试,在十次测试中,只有两次有效。我不明白,也许新的admob运行得不太好?
我在以下设备上测试了这些应用程序:
- HTC One X
- Nexus 5
- 三星 Galaxy Note 10.1
- 三星 Galaxy Ace
- 三星 Galaxy Note 3
- 索尼 Xperia Z
- 三星 Galaxy Alpha
- 三星 Galaxy S3
其中一些手机正在使用最新版本的 Google Play 服务(我的 HTC One X、我的 Nexus 5、Galaxy Note 3)。我不知道其他的。
这是我测试的两个应用程序:
-Rappel https://play.google.com/store/apps/details?id=me.frozened.rappel我的单词书BMI
所以我有两个假设:要么我在运行不佳的手机上测试了这些应用程序(我相信它......),要么我忘记添加一些权限/代码。
另外,我的 HTC One X 没有 SIM 卡(我只使用互联网)。这可能是这款手机的问题吗?