我正在尝试使用Google Play服务实施AdMob。 到目前为止,我已经出现了默认测试横幅,但我想尝试一些测试广告。
我读到模拟器(AVD)必须以Google API 16或17作为目标才能测试AdMob,但是当我创建一个以此为目标的设备时,模拟器无法加载(我留下了它的好处) 20分钟仍然没有加载:(我只是看到闪烁的Android徽标
这是我的AVD设备
这是我的AdFragment类,其中包含与广告相关的所有代码
public class AdFragment extends Fragment
{
private AdView mAdView;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment_ad, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
mAdView = (AdView)getView().findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
// Start loading the ad in the background.
mAdView.loadAd(adRequest);
}
/** Called when leaving the activity */
@Override
public void onPause()
{
if (mAdView != null)
{
mAdView.pause();
}
super.onPause();
}
/** Called when returning to the activity */
@Override
public void onResume()
{
super.onResume();
if (mAdView != null)
{
mAdView.resume();
}
}
/** Called before the activity is destroyed */
@Override
public void onDestroy() {
if (mAdView != null)
{
mAdView.destroy();
}
super.onDestroy();
}
}
现在我不确定是不是我的代码没有生成设备ID或我创建的AVD设备有问题。我看过的教程有类似的东西
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("2EAB96D84FE62876379A9C030AA6A0AC")
现在我不知道最后一行是否是LogCat给出的代码,或者是我必须放入的内容。我注意到developer.google网站有不同的代码所以我认为我不需要包含在我的代码中,因为我还没有得到它。
请帮忙。谢谢。
更新1 我在主活动
中的On Resume中添加了这段代码@Override
protected void onResume()
{
// TODO Auto-generated method stub
super.onResume();
int isAvaiable = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(isAvaiable == ConnectionResult.SUCCESS)
{
Log.d("TEST", "GPS IS OK");
}
else if(isAvaiable == ConnectionResult.SERVICE_MISSING || isAvaiable == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED || isAvaiable == ConnectionResult.SERVICE_DISABLED)
{
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(isAvaiable, this, 1);
dialog.show();
}
}
答案 0 :(得分:1)
测试横幅的API应为17或更高。你有一个很好的答案解释它。 GPS in emulator
对于与启动模拟器相关的问题,我可以给你的唯一建议是尝试VM Acceleration并使用更小的屏幕。 您可以尝试其他模拟器,例如x86Emulator和下载以及最后ISO versions 4.4。在我的情况下,默认的android模拟器需要10-12分钟才能在ldpi中响应,而另一个在hdpi中只有2个。
关于addTestDevice,我认为AdRequest.DEVICE_ID_EMULATOR已经足够了,但是如果你在logcat中看到设备ID的MD5,那么就添加这个哈希。
最后但并非最不重要的是,请记得检查GPS是否安装在开头,在DOCS上进行了解释。
要验证Google Play服务版本,请致电googlePlayServicesAvailable()。如果结果代码为SUCCESS,则Google Play服务APK是最新的,您可以继续建立连接。但是,如果结果代码为SERVICE_MISSING,SERVICE_VERSION_UPDATE_REQUIRED或SERVICE_DISABLED,则用户需要安装更新。
所以你会避免错误。