Cocos2d-x移植到Android后加入广告:http://jetion.diandian.com/post/2012-10-20/40040326620(下面的内容)

在Win32下开发完游戏,移植到Android。然后需要加入广告。
这边,我们直接在移植后的Android项目中加入广告,使用的工具是Eclipse。至于那些C++中调用jni来调用java的函数接口来加广告的,目前还没研究;
在移植后的Android项目中有这么一个类
public class ApplicationDemo extends Cocos2dxActivity
至于类名可能会有点不一样,但是都是继承Cocos2dxActivity的,没错,我们就是要在这里面加入广告。就拿芒果平台的广告来说吧。
下载芒果广告的SDK Android版本的,我这边下的是v1.2.2版本的。
这边建议一句就是,看文档,然后参考Demo里面的代码即可,主要还是以Demo里面的代码为主。
第一步:jar包导入,把相关jar包拷到项目中的libs,右键build path。(包括芒果和要加入的广告平台的SDK)
第二步:权限和Activity添加,在AndroidManifest.xml文件中,把需要添加的权限和Activity添加好。
权限:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

可以把不需要的删了,这边再提一句就是关于定位的不需要的话最好删了,。比如上面的ACCESS_FINE_LOCATION。其实很多都是不需要的,可以根据文档和自己的应用,把必要的几个加入即可(一般文档上面有说哪几个是它们广告平台必须的)。
Activity:把需要使用到广告的平台的Activity加入,其中芒果的是必须的。

<!-- 声明Mogo的Activity -->
        <activity
            android:name="com.adsmogo.adview.AdsMogoWebView"
            android:label="@string/app_name" >
        </activity>

这个是多盟的:

<!-- 声明多盟的Activity -->
        <activity
            android:name="cn.domob.android.ads.DomobActivity"
            android:theme="@android:style/Theme.Translucent" />

第三步:广告加入,广告分很多种类,横幅,全屏等等。这边我加的是横幅广告。广告在Android上一般有两种加入,一种是以Xml文件的方式加入,一种是以代码的方式动态添加,两种都可以,这边我使用的是纯代码的动态加入。
打开Demo中的CodeTypeAdActivity.java这个类,里面写得很明白,这里建议关于回调的都可以不用加入,(基本上添加广告都没必要加入回调,除非遇到未知问题,通过回调来看看是那边出了问题)。

AdsMogoLayout adsMogoLayoutCode;
// 构造方法,设置快速模式
adsMogoLayoutCode = new AdsMogoLayout(this,"93535c6092f543e8a257ee435a69da06", false);
                
RelativeLayout parentLayput = new RelativeLayout(this);
        RelativeLayout.LayoutParams parentLayputParams = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.FILL_PARENT,
                RelativeLayout.LayoutParams.FILL_PARENT);
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.FILL_PARENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,
                RelativeLayout.TRUE);
        parentLayput.addView(adsMogoLayoutCode, layoutParams);
                
        this.addContentView(parentLayput, parentLayputParams);

一般按照Demo里面的都copy下来就可以了。至于广告种类,广告显示位置都可以在上面的代码中调的。运行,广告出来了。
心得:添加广告就那么几步,多做几次就熟练了,有时候很奇怪的就是,都是那么添加,但是不熟练,可能哪个小细节没注意,它就不成功了,但是你又不知道是哪里问题,但是别人也是那么加的,就是可以。所以多添加几次,熟练就行了!不用太在意这块。

 

Cocos2d-x 游戏中嵌入广告(百度横幅):http://www.2cto.com/kf/201407/313907.html