Android AdMob addTestDevice未在logcat中获取设备ID
我正在尝试使用Google Play服务实现AdMob。 到目前为止,我有默认的测试横幅出现,但我想尝试一些测试广告 我读到emulator(AVD)必须以Google API 16或17为目标,才能测试AdMob,但是当我创建一个以谷歌API 16或17为目标的设备时,emulator无法加载(我离开它整整20分钟了,仍然没有加载:(我只看到闪烁的android徽标。) 这是我的AVD设备 这是我的AdFragment类,它包含与广告相关的所有代码Android AdMob addTestDevice未在logcat中获取设备ID,android,admob,Android,Admob,我正在尝试使用Google Play服务实现AdMob。 到目前为止,我有默认的测试横幅出现,但我想尝试一些测试广告 我读到emulator(AVD)必须以Google API 16或17为目标,才能测试AdMob,但是当我创建一个以谷歌API 16或17为目标的设备时,emulator无法加载(我离开它整整20分钟了,仍然没有加载:(我只看到闪烁的android徽标。) 这是我的AVD设备 这是我的AdFragment类,它包含与广告相关的所有代码 public class AdFragme
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给出的代码还是我必须输入的代码。我注意到开发者。google网站有一个不同的代码,所以我假设我不需要在代码中包含,因为我还没有得到它
请帮忙,谢谢
更新1
我在我的主要活动的简历中添加了这段代码
@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();
}
}
测试横幅的API应该是17或更高。这里有一个很好的答案来解释它 对于与启动emulator相关的问题,我能给您的唯一建议是尝试使用更小的屏幕。 你可以尝试其他模拟器,比如下载和最后一个。在我的例子中,默认的android模拟器在ldpi中需要10-12分钟才能响应,而在hdpi中只有2分钟 关于addTestDevice,我认为AdRequest.DEVICE\u ID\u EMULATOR就足够了,但是如果您在logcat中看到设备ID的MD5,那么就添加这个散列 最后但并非最不重要的一点是,记得在开始时检查是否安装了GPS,文档中对此进行了解释 要验证Google Play服务版本,请调用isGooglePlayServicesAvailable()。如果结果代码为成功,则Google Play services APK是最新的,您可以继续建立连接。但是,如果结果代码为缺少服务、需要服务版本更新或禁用服务,则用户需要安装更新
因此,您将避免错误。您好,我制作了一个AVD设备,与您发布Google API 17的链接上的设备完全相同。AVD现在运行,但我遇到了另一个问题。尽管log cat说广告加载完成,但广告似乎没有加载。当我旋转广告时,广告会出现。报告的另一个问题是“Google Play服务已过时”,“由于错误2,Google Play服务不可用"。我执行了您提到的关于检查Google play版本的检查,并在上面发布了代码。对话框显示为“更新服务”,但单击“更新”似乎会导致对话框再次出现*广告未显示。旋转以横向浏览广告显示。如果您的Google play服务是最新版本,请尝试使用最新的谷歌API 19。如果是第一次在设备上运行,广告可能会延迟近一分钟。谢谢,这起作用了,就像你说的,只是花了一段时间。但是logcat不断重复这个错误。现在出现6942次哈哈。10-03 11:31:55.811:E/eglcodeccon(1247)GLUTILSPARAMESIZ:不知道PARAM 0x000 000 0BD0 10-03 11:31:55.831:E/EGLCODECUM(1247):****错误未知类型0x0(GLSIEZOF,72)看起来好像是一个错误,如果不可行的话考虑使用另一个仿真器。