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