效果如下



注册和添加应用就不说了

android部分

1.先将SDK放到libs中



2.AndroidManifest.xml修改如下

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="duomengad.crlyn"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdkandroid:minSdkVersion="16"/>
  7. <!--网络访问权限-->
  8. <uses-permissionandroid:name="android.permission.INTERNET"/>
  9. <!--获取网络信息状态,如当前的网络连接是否有效-->
  10. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  11. <!--读取手机状态-->
  12. <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
  13. <!--允许程序写入外部存储,如SD卡上写文件-->
  14. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  15. <!--获取错略位置-->
  16. <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
  17. <!--获取WiFi状态-->
  18. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
  19. <!--以下权限为可选权限,主要是品牌广告会用到,如果您没有添加,需要这些效果的品牌广告将不会投放到您的应用上-->
  20. <!--震动权限-->
  21. <uses-permissionandroid:name="android.permission.VIBRATE"/>
  22. <uses-featureandroid:glEsVersion="0x00020000"/>
  23. <applicationandroid:label="@string/app_name"
  24. android:icon="@drawable/icon">
  25. <!--TellCocos2dxActivitythenameofour.so-->
  26. <meta-dataandroid:name="android.app.lib_name"
  27. android:value="cocos2dcpp"/>
  28. <!--多盟的SDK-->
  29. <activityandroid:name="cn.domob.android.ads.DomobActivity"
  30. android:theme="@android :style/Theme.Translucent"></activity>
  31. <activityandroid:name="org.cocos2dx.cpp.AppActivity"
  32. android:label="@string/app_name"
  33. android:screenOrientation="portrait"
  34. android:theme="@android :style/Theme.NoTitleBar.Fullscreen"
  35. android:configChanges="orientation">
  36. <intent-filter>
  37. <actionandroid:name="android.intent.action.MAIN"/>
  38. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  39. </intent-filter>
  40. </activity>
  41. </application>
  42. <supports-screensandroid:anyDensity="true"
  43. android:smallScreens="true"
  44. android:normalScreens="true"
  45. android:largeScreens="true"
  46. android:xlargeScreens="true"/>
  47. <uses-permissionandroid:name="android.permission.INTERNET"/>
  48. </manifest>

3.AppActivity.java 文件修改如下

[java] view plain copy
  1. /****************************************************************************
  2. Copyright(c)2008-2010RicardoQuesada
  3. Copyright(c)2010-2012cocos2d-x.org
  4. Copyright(c)2011ZyngaInc.
  5. Copyright(c)2013-2014ChukongTechnologiesInc.
  6. http://www.cocos2d-x.org
  7. Permissionisherebygranted,freeofcharge,toanypersonobtainingacopy
  8. ofthissoftwareandassociateddocumentationfiles(the"Software"),todeal
  9. intheSoftwarewithoutrestriction,includingwithoutlimitationtherights
  10. touse,copy,modify,merge,publish,distribute,sublicense,and/orsell
  11. copiesoftheSoftware,andtopermitpersonstowhomtheSoftwareis
  12. furnishedtodoso,subjecttothefollowingconditions:
  13. Theabovecopyrightnoticeandthispermissionnoticeshallbeincludedin
  14. allcopiesorsubstantialportionsoftheSoftware.
  15. THESOFTWAREISPROVIDED"ASIS",WITHOUTWARRANTYOFANYKIND,EXPRESSOR
  16. IMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEWARRANTIESOFMERCHANTABILITY,
  17. FITNESSFORAPARTICULARPURPOSEANDNONINFRINGEMENT.INNOEVENTSHALLTHE
  18. AUTHORSORCOPYRIGHTHOLDERSBELIABLEFORANYCLAIM,DAMAGESOROTHER
  19. LIABILITY,WHETHERINANACTIONOFCONTRACT,TORTOROTHERWISE,ARISINGFROM,
  20. OUTOFORINCONNECTIONWITHTHESOFTWAREORTHEUSEOROTHERDEALINGSIN
  21. THESOFTWARE.
  22. ****************************************************************************/
  23. packageorg.cocos2dx.cpp;
  24. importorg.cocos2dx.lib.Cocos2dxActivity;
  25. importcn.domob.android.ads.DomobAdManager.ErrorCode;
  26. importcn.domob.android.ads.DomobInterstitialAd;
  27. importcn.domob.android.ads.DomobInterstitialAdListener;
  28. importandroid.os.Bundle;
  29. importandroid.util.Log;
  30. publicclassAppActivityextendsCocos2dxActivity{
  31. privateDomobInterstitialAdmInterstitialAd;
  32. privatestaticAppActivity_AppActivity;
  33. publicstaticfinalStringPUBLISHER_ID="56OJwdBIuNBzc/kIO9";
  34. publicstaticfinalStringInterstitialPPID="16TLuqBoApj34NUE2GW-0G9z";
  35. @Override
  36. protectedvoidonCreate(BundlesavedIntanceState){
  37. super.onCreate(savedIntanceState);
  38. mInterstitialAd=newDomobInterstitialAd(this,PUBLISHER_ID,InterstitialPPID,DomobInterstitialAd.INTERSITIAL_SIZE_300X250);
  39. mInterstitialAd.setInterstitialAdListener(newDomobInterstitialAdListener(){
  40. @Override
  41. publicvoidonInterstitialAdReady(){
  42. Log.i("DomobSDKDemo","onAdReady");
  43. }
  44. @Override
  45. publicvoidonLandingPageOpen(){
  46. Log.i("DomobSDKDemo","onLandingPageOpen");
  47. }
  48. @Override
  49. publicvoidonLandingPageClose(){
  50. Log.i("DomobSDKDemo","onLandingPageClose");
  51. }
  52. @Override
  53. publicvoidonInterstitialAdPresent(){
  54. Log.i("DomobSDKDemo","onInterstitialAdPresent");
  55. }
  56. @Override
  57. publicvoidonInterstitialAdDismiss(){
  58. //Requestnewadwhenthepreviousinterstitialadwasclosed.
  59. mInterstitialAd.loadInterstitialAd();
  60. Log.i("DomobSDKDemo","onInterstitialAdDismiss");
  61. }
  62. @Override
  63. publicvoidonInterstitialAdFailed(ErrorCodearg0){
  64. Log.i("DomobSDKDemo","onInterstitialAdFailed");
  65. }
  66. @Override
  67. publicvoidonInterstitialAdLeaveApplication(){
  68. Log.i("DomobSDKDemo","onInterstitialAdLeaveApplication");
  69. }
  70. @Override
  71. publicvoidonInterstitialAdClicked(DomobInterstitialAdarg0){
  72. Log.i("DomobSDKDemo","onInterstitialAdClicked");
  73. }
  74. });
  75. mInterstitialAd.loadInterstitialAd();
  76. _AppActivity=this;
  77. }
  78. publicstaticvoidshowAd(){
  79. _AppActivity.runOnUiThread(newRunnable(){
  80. @Override
  81. publicvoidrun(){
  82. if(_AppActivity.mInterstitialAd.isInterstitialAdReady()){
  83. _AppActivity.mInterstitialAd.showInterstitialAd(_AppActivity);
  84. }else{
  85. Log.i("DomobSDKDemo","InterstitialAdisnotready");
  86. _AppActivity.mInterstitialAd.loadInterstitialAd();
  87. }
  88. }
  89. });
  90. }
  91. }

4.android.mk修改如下

[cpp] view plain copy
  1. LOCAL_PATH:=$(callmy-dir)
  2. include$(CLEAR_VARS)
  3. LOCAL_MODULE:=cocos2dcpp_shared
  4. LOCAL_MODULE_FILENAME:=libcocos2dcpp
  5. LOCAL_SRC_FILES:=hellocpp/main.cpp\
  6. ../../Classes/AppDelegate.cpp\
  7. ../../Classes/HelloWorldScene.cpp\
  8. ../../Classes/Admob.cpp
  9. LOCAL_C_INCLUDES:=$(LOCAL_PATH)/../../Classes
  10. LOCAL_WHOLE_STATIC_LIBRARIES:=cocos2dx_static
  11. LOCAL_WHOLE_STATIC_LIBRARIES+=cocosdenshion_static
  12. #LOCAL_WHOLE_STATIC_LIBRARIES+=box2d_static
  13. #LOCAL_WHOLE_STATIC_LIBRARIES+=cocosbuilder_static
  14. #LOCAL_WHOLE_STATIC_LIBRARIES+=spine_static
  15. #LOCAL_WHOLE_STATIC_LIBRARIES+=cocostudio_static
  16. #LOCAL_WHOLE_STATIC_LIBRARIES+=cocos_network_static
  17. #LOCAL_WHOLE_STATIC_LIBRARIES+=cocos_extension_static
  18. include$(BUILD_SHARED_LIBRARY)
  19. $(callimport-module,.)
  20. $(callimport-module,audio/android)
  21. #$(callimport-module,Box2D)
  22. #$(callimport-module,editor-support/cocosbuilder)
  23. #$(callimport-module,editor-support/spine)
  24. #$(callimport-module,editor-support/cocostudio)
  25. #$(callimport-module,network)
  26. #$(callimport-module,extensions)

VS部分

1.新建Admob.h

[cpp] view plain copy
  1. #pragmaonce
  2. classAdmob{
  3. public:
  4. staticvoidshowAd();
  5. };

2.新建Admob.cpp

[cpp] view plain copy
  1. #include"Admob.h"
  2. #include"cocos2d.h"
  3. USING_NS_CC;
  4. #if(CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)
  5. #include"platform/android/jni/JniHelper.h"
  6. #include<jni.h>
  7. constchar*AppActivityCalssName="org/cocos2dx/cpp/AppActivity";
  8. voidAdmob::showAd(){
  9. cocos2d::JniMethodInfot;
  10. if(cocos2d::JniHelper::getStaticMethodInfo(t,AppActivityCalssName,"showAd","()V")){
  11. t.env->CallStaticVoidMethod(t.classID,t.methodID);
  12. t.env->DeleteLocalRef(t.classID);
  13. }
  14. }
  15. #else
  16. voidAdmob::showAd(){
  17. log("showAd()called");
  18. return;
  19. }
  20. #endif

3.修改HelloWorldScene.h文件,修改如下

[cpp] view plain copy
  1. #ifndef__HELLOWORLD_SCENE_H__
  2. #define__HELLOWORLD_SCENE_H__
  3. #include"cocos2d.h"
  4. classHelloWorld:publiccocos2d::Layer
  5. {
  6. public:
  7. //there'sno'id'incpp,sowerecommendreturningtheclassinstancepointer
  8. staticcocos2d::Scene*createScene();
  9. //Here'sadifference.Method'init'incocos2d-xreturnsbool,insteadofreturning'id'incocos2d-iphone
  10. virtualboolinit();
  11. //aselectorcallback
  12. voidmenuCloseCallback(cocos2d::Ref*pSender);
  13. voidadCallback(cocos2d::Ref*pRef);
  14. //implementthe"staticcreate()"methodmanually
  15. CREATE_FUNC(HelloWorld);
  16. };
  17. #endif//__HELLOWORLD_SCENE_H__

4.修改HelloWorldScene.cpp文件,修改如下

[cpp] view plain copy
  1. #include"HelloWorldScene.h"
  2. #include"Admob.h"
  3. USING_NS_CC;
  4. Scene*HelloWorld::createScene()
  5. {
  6. //'scene'isanautoreleaseobject
  7. autoscene=Scene::create();
  8. //'layer'isanautoreleaseobject
  9. autolayer=HelloWorld::create();
  10. //addlayerasachildtoscene
  11. scene->addChild(layer);
  12. //returnthescene
  13. returnscene;
  14. }
  15. //on"init"youneedtoinitializeyourinstance
  16. boolHelloWorld::init()
  17. {
  18. //////////////////////////////
  19. //1.superinitfirst
  20. if(!Layer::init())
  21. {
  22. returnfalse;
  23. }
  24. SizevisibleSize=Director::getInstance()->getVisibleSize();
  25. Vec2origin=Director::getInstance()->getVisibleOrigin();
  26. /////////////////////////////
  27. //2.addamenuitemwith"X"image,whichisclickedtoquittheprogram
  28. //youmaymodifyit.
  29. //adda"close"icontoexittheprogress.it'sanautoreleaseobject
  30. autocloseItem=MenuItemImage::create(
  31. "CloseNormal.png",
  32. "CloseSelected.png",
  33. CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));
  34. closeItem->setPosition(Vec2(origin.x+visibleSize.width-closeItem->getContentSize().width/2,
  35. origin.y+closeItem->getContentSize().height/2));
  36. autoadItem=MenuItemImage::create(
  37. "CloseNormal.png",
  38. "CloseSelected.png",
  39. CC_CALLBACK_1(HelloWorld::adCallback,this));
  40. adItem->setPosition(Vec2(origin.x+visibleSize.width/2,origin.y+visibleSize.height/2));
  41. //createmenu,it'sanautoreleaseobject
  42. automenu=Menu::create(closeItem,adItem,NULL);
  43. menu->setPosition(Vec2::ZERO);
  44. this->addChild(menu,1);
  45. /////////////////////////////
  46. //3.addyourcodesbelow...
  47. //addalabelshows"HelloWorld"
  48. //createandinitializealabel
  49. autolabel=LabelTTF::create("HelloWorld","Arial",24);
  50. //positionthelabelonthecenterofthescreen
  51. label->setPosition(Vec2(origin.x+visibleSize.width/2,
  52. origin.y+visibleSize.height-label->getContentSize().height));
  53. //addthelabelasachildtothislayer
  54. this->addChild(label,1);
  55. //add"HelloWorld"splashscreen"
  56. autosprite=Sprite::create("HelloWorld.png");
  57. //positionthespriteonthecenterofthescreen
  58. sprite->setPosition(Vec2(visibleSize.width/2+origin.x,visibleSize.height/2+origin.y));
  59. //addthespriteasachildtothislayer
  60. this->addChild(sprite,0);
  61. returntrue;
  62. }
  63. voidHelloWorld::menuCloseCallback(Ref*pSender)
  64. {
  65. #if(CC_TARGET_PLATFORM==CC_PLATFORM_WP8)||(CC_TARGET_PLATFORM==CC_PLATFORM_WINRT)
  66. MessageBox("Youpressedtheclosebutton.WindowsStoreAppsdonotimplementaclosebutton.","Alert");
  67. return;
  68. #endif
  69. Director::getInstance()->end();
  70. #if(CC_TARGET_PLATFORM==CC_PLATFORM_IOS)
  71. exit(0);
  72. #endif
  73. }
  74. voidHelloWorld::adCallback(cocos2d::Ref*pRef){
  75. Admob::showAd();
  76. }

OK,点击最中央的按钮,


转自:http://blog.csdn.net/wiyun_beijing/article/details/17912471

更多相关文章

  1. Android(安卓)Media Framework(4): 支持格式的扩展
  2. Android(安卓)sdcard读写文件(二)
  3. unity Android(安卓)csv 数据持久化
  4. Android中对标准内核的按键映射以及按键驱动
  5. android 遍历assets下的文件
  6. Android(安卓)数据存储与IO (二)
  7. ubuntu 删除android studio
  8. android获取手机内部存储空间和外部存储空间
  9. Android内存泄露利器(hprof篇)

随机推荐

  1. android 界面 自动化测试
  2. android ListView的复选框
  3. 错误 java.lang.NoSuchMethodError: No s
  4. Android(安卓)应用程序内切换语言
  5. android---MediaRecorder
  6. android WebView 使用实例
  7. 侧滑菜单(二)
  8. Android(安卓)动态设置布局文件的excepti
  9. 实现RadioButton多行多列排列布局
  10. Libgdx Android项目——图像的绘制1