Cordova admob插件,新的谷歌播放服务SDK

时间:2014-03-06 21:09:15

标签: android cordova admob google-play-services

我在我的phonegap / cordova(版本3.4)安卓应用中使用此插件:https://github.com/floatinghotpot/cordova-plugin-admob

最近(8天前)我注意到autor更新到新的google play服务sdk而不是旧的admob sdk,所以我正在尝试使用这个新的sdk。我已经将lib安装到我的项目中,所有这些都在工作和编译。但是当我运行插件示例代码时,或者只是这样:

    window.plugins.AdMob.createBannerView( 
        {
        'publisherId' : '...............',
        'adSize' : am.AD_SIZE.BANNER,
        'bannerAtTop' : true
        }, 
        function() {}, 
        function() {}
    );

应用程序因此错误崩溃:“03-06 20:40:20.063:A / libc(6949):致命信号6(SIGABRT)位于0x00000223(代码= 0),线程6949”

如果我只删除该功能,页面加载良好..任何人都知道发生了什么或已经使用新的sdk?

编辑:我决定在没有插件的情况下做自己。此代码有效,广告已在展示。这看起来是否正确以及新框架所需要的一切?

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    super.init();
    // Set by <content src="index.html" /> in config.xml
    super.loadUrl(Config.getStartUrl());
    //super.loadUrl("file:///android_asset/www/index.html")

    // Set ad settings
    adView = new AdView(this);
    adView.setAdUnitId(AD_UNIT_ID);
    adView.setAdSize(AdSize.SMART_BANNER);

    // Layout
    LinearLayout layout = super.root;
    layout.addView(adView); 

    // Request and show ad
    AdRequest request = new AdRequest.Builder().build();
    adView.loadAd(request);
}

@Override
public void onResume() {
  super.onResume();
  if (adView != null) {
    adView.resume();
  }
}

@Override
public void onPause() {
  if (adView != null) {
    adView.pause();
  }
  super.onPause();
}

/** Called before the activity is destroyed. */
@Override
public void onDestroy() {
  // Destroy the AdView.
  if (adView != null) {
    adView.destroy();
  }
  super.onDestroy();
}

}

1 个答案:

答案 0 :(得分:1)

这是一个解决方案:

  1. 安装您引用的插件: https://github.com/floatinghotpot/cordova-plugin-admob.git

  2. 使用Cordova 3.3或3.5+,如已知的那样,v3.4在3.5中已经修复了一些缺陷

  3. 来源:https://stackoverflow.com/questions/22647417/admob-plugins-compatible-with-phonegap-3-4