【问题标题】:Android AdMob addTestDevice not getting deviceID in logcatAndroid AdMob addTestDevice 未在 logcat 中获取 deviceID
【发布时间】:2014-10-02 22:12:37
【问题描述】:

我正在尝试使用 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();
        }

    }

【问题讨论】:

    标签: android admob


    【解决方案1】:

    测试横幅的 API 应为 17 或更高版本。你在这里有一个很好的答案来解释它。 GPS in emulator.

    对于与启动模拟器相关的问题,我能给你的唯一建议是尝试VM Acceleration 并使用更小的屏幕。 您可以尝试其他模拟器,例如x86Emulator 并下载最后一个ISO versions 4.4。在我的情况下,默认的 android 模拟器在 ldpi 中响应需要 10-12 分钟,而在 hdpi 中只有 2 分钟。

    关于 addTestDevice,我认为 AdRequest.DEVICE_ID_EMULATOR 就足够了,但是如果您在 logcat 中看到您的设备 ID 的 MD5 则添加此哈希。

    最后但并非最不重要的一点,记得检查一开始是否安装了 GPS,在 DOCS 上有说明。

    要验证 Google Play 服务版本,请调用 isGooglePlayServicesAvailable()。如果结果代码为 SUCCESS,则 Google Play 服务 APK 是最新的,您可以继续建立连接。但是,如果结果代码是 SERVICE_MISSING、SERVICE_VERSION_UPDATE_REQUIRED 或 SERVICE_DISABLED,则用户需要安装更新。

    这样你就可以避免错误。

    【讨论】:

    • 您好,我制作了一个 AVD 设备,与您发布的 Google API 17 链接上的设备完全相同。AVD 现在可以运行,但我遇到了另一个问题。即使 log cat 显示 Ad Finished Loading,广告似乎也没有加载。当我旋转广告出现。报告的另一个问题是“Google Play 服务已过期”、“Google Play 服务因错误 2 不可用”。我实施了您提到的有关检查 Google Play 版本的检查,并发布了上面的代码。对话框显示更新服务,但单击更新似乎会导致对话框再次出现
    • *广告未展示的肖像。旋转以横向展示广告。
    • 如果您的 Google Play 服务是最后一个版本,请尝试使用最后一个 Google API 19。如果是第一次在设备中运行,广告可能会延迟近一分钟。
    • 谢谢,这行得通,只是像你说的那样花了一段时间。但是 logcat 不断重复这个错误。现在出现6942次哈哈。 10-03 11:31:55.811: E/eglCodecCommon(1247): glUtilsParamSize: 未知参数 0x00000bd0 10-03 11:31:55.831: E/eglCodecCommon(1247): **** 错误未知类型 0x0 (glSizeof,72)
    • 看起来是GPU/emulator的错误,如果不可行考虑使用另一个模拟器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多