Cocos2d-x3.1中使用万普平台实现Android平台广告添加

原创 2014年09月29日 18:29:04

        本文使用万普广告平台往Cocos2d-x3.1项目中添加广告。万普的SDK for Cocos2d-x功能挺全的,只是官方文档的使用说明中使用的Cocos2d-x引擎是2.0.1,平台是Windows下的,年代有点久远,本文主要介绍Mac10.9.5+XCode6.0.1+Cocos2d-x使用万普添加广告。首先赞一下万普的工作人员,头一天晚上注册使用,第二天就打电话问候有没有问题~

1、注册万普账号

http://www.waps.cn,万普其实可以不用登陆注册,同样可以下载相关SDK。

2、下载SDK

下载在新闻公告右边SDK下载,根据要测试的手机系统选择相应SDK,我使用的是Android版For Cocos2dx,100多M的东西。下载下来解压,会出现libs、demo、开发手册和一个更新文档。

3、万普官网创建应用

很简单,输入应用名称和应用平台,点击下一步即可获得APP_ID,不需要再点SDK下载。

4、创建Cocos2d-x工程

这个无需解释,控制台下的cocos new 命令创建。

5、拷贝Jar包

WapsOffer_ForCocos2dx_1.1目录下libs中的AppOffer_2.1.1.jar到上一步创建的Cocos工程Android目录下,此时proj.android目录下没有libs目录,我们需新建libs目录,并将拷贝的jar包放在该目录下。

6、ADT打开proj.android工程

首先出现两个问题:1)Unable to resolve target 'android-10'。解决办法:修改project.properties中的target属性为你ADT存在的。其次,修改AndroidManifest.xml为android:minSdkVersion='11'  android:maxSdkVersion='18',同样改为你ADT中存在的。2)org.cocos2dx.cpp下的AppActivity.java报错。解决方案:点击工程目录->Properties->Java Build Path->Source/Link Source/Browse。选择引擎目录下cocos/platform/android/java/src。OK,修改Folder name,随便写一个即可。OK。

7、修改AppActivity.java代码

此处只添加一个迷你广告,来说明平台的配置
<span style="font-size:14px;">import org.cocos2dx.lib.Cocos2dxActivity;  
  
import org.cocos2dx.lib.Cocos2dxEditText;  
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;  
import org.cocos2dx.lib.Cocos2dxRenderer;  
  
  
import android.app.ActivityManager;  
import android.content.Context;  
import android.content.pm.ConfigurationInfo;  
import android.os.Bundle;  
import android.util.Log;  
import android.view.Gravity;  
import android.view.ViewGroup;  
import android.widget.FrameLayout;  
import android.widget.LinearLayout;  
import cn.waps.AppConnect;  
  
  
public class AppActivity extends Cocos2dxActivity {  
    private Cocos2dxGLSurfaceView mGLView;  
    private static Context mContext;      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        mContext = this;          
          
        if (detectOpenGLES20()) {  
            // 第一个参数就是应用的id,第二个参数是渠道标识,参考手册里面有渠道标识的对照表  
            AppConnect.getInstance("</span><span style="font-family: Arial, 微软雅黑; "><strong><span style="font-size:12px;color:#cc0000;">510a67751f53b4c4d05ed9f56373cc92</span></strong></span><span style="font-size:14px;">",  //APP_ID
                    "default", this);  
            // FrameLayout  
            ViewGroup.LayoutParams framelayout_params = new ViewGroup.LayoutParams(  
                    ViewGroup.LayoutParams.FILL_PARENT,  
                    ViewGroup.LayoutParams.FILL_PARENT);  
            FrameLayout framelayout = new FrameLayout(this);  
            framelayout.setLayoutParams(framelayout_params);  
  
            // Cocos2dxEditText layout  
            ViewGroup.LayoutParams edittext_layout_params = new ViewGroup.LayoutParams(  
                    ViewGroup.LayoutParams.FILL_PARENT,  
                    ViewGroup.LayoutParams.WRAP_CONTENT);  
            Cocos2dxEditText edittext = new Cocos2dxEditText(this);  
            edittext.setLayoutParams(edittext_layout_params);  
  
            // ...add to FrameLayout  
            framelayout.addView(edittext);  
  
            // Cocos2dxGLSurfaceView  
            mGLView = new Cocos2dxGLSurfaceView(this);  
  
            // ...add to FrameLayout  
            framelayout.addView(mGLView);  
  
            mGLView.setEGLContextClientVersion(2);  
            mGLView.setCocos2dxRenderer(new Cocos2dxRenderer());  
            // mGLView.setTextField(edittext);  
  
            // Set framelayout as the content view  
            setContentView(framelayout);  
            //迷你广告  
            LinearLayout adMiniLayout = new LinearLayout(this);  
            adMiniLayout.setOrientation(LinearLayout.VERTICAL);  
            FrameLayout.LayoutParams lp_mini = new FrameLayout.LayoutParams(  
                    FrameLayout.LayoutParams.FILL_PARENT,  
                    FrameLayout.LayoutParams.WRAP_CONTENT);  
            //设置adMiniLayout的悬浮位置,具体的位置开发者根据需要设置  
            lp_mini.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;  
            this.addContentView(adMiniLayout, lp_mini);  
  
            LinearLayout miniLayout = new LinearLayout(this);  
            miniLayout.setGravity(Gravity.CENTER_HORIZONTAL);  
            adMiniLayout.addView(miniLayout);  
            // 添加迷你广告  
            AppConnect.getInstance(this).showMiniAd(this, miniLayout, 10);            
        } else {  
            Log.d("activity", "don't support gles2.0");  
            finish();  
        }  
  
    }  
    private boolean detectOpenGLES20() {  
        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);  
        ConfigurationInfo info = am.getDeviceConfigurationInfo();  
        return (info.reqGlEsVersion >= 0x20000);  
    }  
  
    static {  
        System.loadLibrary("cocos2dcpp");  
    }    
}  </span>

8、AndroidManifest.xml加权限

<uses-permission android:name="android.permission.INTERNET" /> //允许程序打开网络套接字
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> //允许程序访问有关GSM网络信息
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> //允许程序访问wifi网络信息
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> //读取手机状态权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />//手机SD卡写入权限
<uses-permission android:name="android.permission.GET_TASKS" />//允许一个程序获取信息相关当前或最近运行的任务。一个缩略的任务状态,是否活动等待

9、编译真机测试

编译过程中可能会遇到各种问题。

1)CDT问题:点击项目名称->Properties->Builders,去掉CDT Builder的勾选。

2)NDK路径问题:ADT置于屏幕最前端,ADT->Preferences->Android->NDK->NDK Location框中添加NDK的相对路径。

3)NDK命令问题:点击项目名称->Properties->C/C++ Build->Environment,Add,添加name:NDK_ROOT,value:NDK相对路径,获取可以通过命令行获取。

4)NDK模块问题:点击项目名称->Properties->Java Build Path/Source/Link Source。实质上这一步的问题在第6步解决了。

5)其他问题:如果还是提示target问题,提高AndroidManifest.xml的最小NDK值,或者重启一下ADT就好了。

10、效果图



Cocos2d-x3.1中使用万普平台实现Android平台广告添加

http://www.2cto.com/kf/201409/339508.html 本文使用万普广告平台往Cocos2d-x3.1项目中添加广告。万普的SDK for Cocos2d-x功能挺全的...
  • leansmall
  • leansmall
  • 2015年08月22日 21:57
  • 1038

晒下自己App广告平台积分墙收入,顺便点评几个广告平台

这是我之前发在爱开发App源码论坛的文章。分享了我从2011年到现在移动广告方面的收入和一些心得。 产品类型:FC、街机模拟器类App游戏 广告平台:万普世纪 广告形式:积分墙,用户先试玩几次...
  • tttto
  • tttto
  • 2015年07月06日 11:37
  • 6344

android 广告平台,万普平台使用心得

http://blog.csdn.net/yuxiaohui78/article/details/8210540 应用上线后,从用户流量上的反馈有点心得。 1.条形广告:    ...
  • dajian790626
  • dajian790626
  • 2014年11月18日 00:31
  • 4836

Android开发总结:个人开发者如何通过广告平台赚钱

Android个人开发者如何通过广告平台赚钱
  • Estellise
  • Estellise
  • 2014年03月05日 00:06
  • 6682

unity3d插入android有米广告

有米官网:http://www.youmi.net/register?r=MTI0MDg= 国内的广告,我觉得万普和有米还不错,我也只试了这两个,其他的都是看评价的,呵呵~~~首先我们去有米...
  • kepoon
  • kepoon
  • 2013年11月19日 16:54
  • 2443

Android接入多盟广告SDK--让你的APP通过广告平台赚钱

前言个人开发者可以通过在自己的APP里面嵌入广告,用户下载你的APP,点击了你APP里的广告,您就可以在多盟平台获得相应的收益。如果是公司,那就不是为了赚那么点钱了,主要是为了与用户有更多的互动,就想...
  • Alpha58
  • Alpha58
  • 2017年03月02日 10:40
  • 3092

iOS-插入广告-InMobi使用教程

本文详细介绍了iOS端inMobi的使用。
  • qq_26300747
  • qq_26300747
  • 2017年05月01日 20:58
  • 726

选择广告平台的几个重要指标

自谷歌于2009年8月宣布斥资7.5亿美元全资收购美国移动广告平台Admob,正式踏入移动广告市场后,次年一月苹果宣布以2.75亿美元收购QuattroWireless,同年四月推出自身广告平台IAD...
  • appjumi
  • appjumi
  • 2014年06月13日 09:58
  • 388

开发者选用国内哪家移动广告平台赚钱

步入移动开发也快三年了,自始至终都是个人独立开发,因此此篇文章并不一定适合企业用户,并且以下纯属个人经验、经历、看法,不能代表真实情况。   最早开发游戏纯属自己玩,后来听人说游戏里面可以加广告能赚...
  • u013411976
  • u013411976
  • 2016年05月11日 14:15
  • 1280

积分墙广告平台接入指路

我主要是接入过积分墙,用过20多家广告平台的sdk,各家各有特点,总结起来就3家广告平台的积分墙比较好,分别是有米、多盟、点乐。 有米的积分墙任务比较多,游戏广告基本激活单价是1元,试用时间到达后有s...
  • liu149339750
  • liu149339750
  • 2015年05月18日 15:44
  • 3030
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cocos2d-x3.1中使用万普平台实现Android平台广告添加
举报原因:
原因补充:

(最多只允许输入30个字)