cocoscocos creator anysdk怎么接入anysdk framework

转载请注明出处:http://blog.csdn.net/qq_
本文源自【大学之旅_谙忆的博客】
今天建立Spring MVC骨架的时候,突然遇到这么一个问题~~HTTP Statu...
AnySDK介绍: 它并不是一款sdk,而是一个第三方平台,可以帮助你更快的接入其他sdk,比如QQ,微信登录,分享等。
此文档旨在帮助自己理清接入sdk的开发流程,让自己有一个大的方面的了解,因此只...
很久没有来csdn了,之前犯了文艺程序员2B毛病,买域名,买主机,搭建了一个个人的博客,也就是大家看到我之前的文章上加的链接,但是,作为一个程序员,或者作为一个苦逼的游戏开发者,写博客本身就是一件力不...
区别于前面的紧急APN,这里的APN参数主要指常规的SIM卡APN参数,手机在上网时必须传递正确的APN参数给运营商才可以接入移动网络,而常规APN参数的创建是由监听器触发的。
区别于前面的紧急APN,这里的APN参数主要指常规的SIM卡APN参数,手机在上网时必须传递正确的APN参数给运营商才可以接入移动网络,而常规APN参数的创建是由监听器触发的。
因为Cocos2d-X的缺点是程序库比较复杂,并且不稳定;虽然说是个引擎,也提供了些辅助工具,但没有系统化,实际只是个程序库;唯独他最大的优点就在于开发的产品可以跨平台发行。所以利用他的优势可以集成K...
话说我这一篇就写搭建打包安卓环境,是不是有点过早了(其实我主要是怕以后重装系统,忘了怎么搭建了),但是迟早要面对的痛苦,一直延后也不是办法,对吧。
在官方文档中,对于打包安卓apk,已经很清楚了,我...
AnySDK 文档
首页快速体验 常见问题 工具使用 企业版 接入指南 自助开发
渠道列表渠道ID的获取客户端获取渠道ID外部获取渠道ID
...
AnySDK项目实战教程
管理提醒: 本帖被 fm2010 设置为精华()
http://www.cocoachina.com/bbs/read.php?tid-2...
本文引用至http://docs.anysdk.com/Introduce (mark一下)
1.常规方式手工接入SDK有什么弊端?开发者为什么需要使用AnySDK?
目前国内有大大小小一...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)AnySDK Framework · GitBook403 Forbidden
403 Forbidden
nginx/1.4.6 (Ubuntu)15:58:14 UTC
本文主要介绍怎么在 CocosCreator 项目中集成 AnySDK 。
本人开发环境
CocosCreator 1.1.1, AnySDK 2.1.2, AnySDK_Framework_JS_Android_2.1.2, MacOS 10.10.3
集成 AnySDK 详细步骤
由于本人使用 git 对项目进行版本控制管理,所以下列步骤中会有一些与 git 相关的操作。如果你没有使用 git,那么你可以直接忽略下列步骤中与 git 相关的操作。
获取 AnySDK Framework
安装 AnySDK 客户端,然后在 AnySDK 客户端的【安妮市场】【分类】【框架】中找到 JS(Android) 框架并下载。如下图:
下载完成后打开 JS(Android) 框架文件夹即可看到 AnySDKFiles/Store/Frameworks/AnySDK_Framework_JS_Android_2.1.2/AnySDK_Framework_JS(Android)/ 这样的目录。如下图:
下文统一使用 AnySDK_Framework_JS(Android) 指代 AnySDK Framework 文件目录。
构建并编译 CocosCreator 项目
下文使用 your-proj 指代你的 CocosCreator 项目路径。
修改项目中的 gitignore 文件。
删除 your-proj/.gitignore 文件中以下路径:
在 your-proj/.gitignore 文件中添加以下路径:
build/jsb-default/src/
build/jsb-default/res/
build/jsb-default/publish/
build/jsb-default/simulator/
build/jsb-default/frameworks/runtime-src/proj.android/bin/
build/jsb-default/frameworks/runtime-src/proj.android/gen/
build/jsb-default/frameworks/runtime-src/proj.android/obj/
build/jsb-default/frameworks/runtime-src/proj.android/assets/
build/jsb-default/frameworks/cocos2d-x/cocos/platform/android/java/bin/
build/jsb-default/frameworks/cocos2d-x/cocos/platform/android/java/gen/
构建发布 Android 平台
使用 CocosCreator 打开项目,点击 【项目】【构建发布】,发布平台选择 “Android”, 模板选择 “default”。然后点击 “构建”按钮 对项目进行构建。构建完毕会在 your-proj 目录下生成一个 build/jsb-default/ 目录。
构建完成后,点击 “编译”按钮 对项目进行编译,编译过程大概20分钟左右。编译完成后,安装编译生成的 apk 到手机上查看是否运行正常。
如果在构建和编译过程中出现错误,请参考 CocosCreator 官方的。
注意:该步骤中的编译操作并不是必须的,只是为了保证你的编译发布 Android 平台相关开发环境已经配置完成。这样在集成 AnySDK 的出现错误的时候,就可以排除开发环境配置相关的问题了。
获取 anysdk jsb 绑定文件
添加 anysdk jsb 文件
在 build/jsb-default/frameworks/cocos2d-x/ 目录下新建 anysdk 文件夹,然后拷贝 AnySDK_Framework_JS(Android)/ 目录下的 src 文件夹到新建的 anysdk 文件夹中。
修改 build-cfg.json 文件
在 build/jsb-default/frameworks/runtime-src/proj.android/build-cfg.json 文件中添加:
"from": "../../cocos2d-x/anysdk/src",
如下图,注意:不要遗漏了添加代码前面分隔的逗号 “,”。
修改 jsb.js 文件
在 build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/script/jsb.js 文件中添加:
(jsb.fileUtils.isFileExist('jsb_anysdk_constants.js') || jsb.fileUtils.isFileExist('jsb_anysdk_constants.jsc')) {
if (cc.sys.os == cc.sys.OS_IOS || cc.sys.os == cc.sys.OS_ANDROID) {
require('jsb_anysdk_constants.js');
if (jsb.fileUtils.isFileExist('jsb_anysdk.js') || jsb.fileUtils.isFileExist('jsb_anysdk.jsc')) {
if (cc.sys.os == cc.sys.OS_IOS || cc.sys.os == cc.sys.OS_ANDROID) {
require('jsb_anysdk.js');
拷贝anysdk framework stl库
添加 protocols 文件
首先,查看所接入项目的 build/jsb-default/frameworks/runtime-src/proj.android/jni/application.mk 文件第一行找到 stl 库类型设置。 如下:
APP_STL := gnustl_static
然后,进入所接入项目的 build/jsb-default/frameworks/runtime-src/proj.android 目录,新建 protocols 文件夹。根据上面查看到的stl类型,选取 AnySDK_Framework_JS(Android)/framework/protocols_gnustl_static/ 库,然后将该目录下的 android 和 include 文件夹拷贝到 protocols 目录下。
添加 libPluginProtocol.jar 文件
在 build/jsb-default/frameworks/runtime-src/proj.android/ 目录下新建 libs 文件夹,然后将 build/jsb-default/frameworks/runtime-src/proj.android/protocols/android 目录下的 libPluginProtocol.jar 文件移到 libs 目录下。
添加 res 文件
将 AnySDK_Framework_JS(Android)/framework/protocols_gnustl_static/ 目录下的 res 文件夹,拷贝到 build/jsb-default/frameworks/runtime-src/proj.android/ 目录下,注意选择合并,避免文件覆盖。
添加 Classes 文件
由于 Creator 使用的是 lite 版本引擎,所有请到本文回复中的 23楼下载官方大神 panda 提供的 anysdk-creator-jsb.zip 绑定文件,然后拷贝到 build/jsb-default/frameworks/runtime-src/Classes 目录下。详情请查看23楼。
修改 AppDelegate.cpp 文件
在 build/jsb-default/frameworks/runtime-src/Classes/AppDelegate.cpp 文件中添加:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#include "jsb_anysdk_basic_conversions.h"
#include "jsb_anysdk_protocols_auto.hpp"
#include "manualanysdkbindings.hpp"
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
sc-&addRegisterCallback(register_all_anysdk_framework);
sc-&addRegisterCallback(register_all_anysdk_manual);
修改 Android.mk 文件
在 文件中添加 build/jsb-default/frameworks/runtime-src/proj.android/jni/Android.mk 文件中添加:
$(call import-add-path,$(LOCAL_PATH)/../)
../../Classes/jsb/jsb_creator_auto.cpp \
../../Classes/jsb_anysdk_basic_conversions.cpp \
../../Classes/jsb_anysdk_protocols_auto.cpp \
../../Classes/manualanysdkbindings.cpp
LOCAL_WHOLE_STATIC_LIBRARIES := PluginProtocolStatic
$(call import-module, protocols/android)
如下图,**注意:记得在 ../../Classes/AppDelegate.cpp 添加 “\”。**
修改 main.cpp 文件
在 build/jsb-default/frameworks/runtime-src/proj.android/jni/hellojavascript/main.cpp 文件中添加:
#include "PluginJniHelper.h"
using namespace anysdk::
env-&GetJavaVM(&vm);
PluginJniHelper::setJavaVM(vm);
修改 AndroidManifest.xml 文件
在 build/jsb-default/frameworks/runtime-src/proj.android/AndroidManifest.xml 文件中添加 AnySDK 所需要的权限:
&!-- for anysdk start --&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.RESTART_PACKAGES" /&
&uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /&
&!-- for anysdk end --&
修改 AppActivity.java 文件
在 build/jsb-default/frameworks/runtime-src/proj.android/src/org/cocos2dx/javascript/AppActivity.java 添加:
import com.anysdk.framework.PluginW
import android.content.I
import android.os.B
PluginWrapper.init(this); // for plugins
protected void onDestroy() {
PluginWrapper.onDestroy();
super.onDestroy();
protected void onPause() {
PluginWrapper.onPause();
super.onPause();
protected void onResume() {
PluginWrapper.onResume();
super.onResume();
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
PluginWrapper.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
protected void onNewIntent(Intent intent) {
PluginWrapper.onNewIntent(intent);
super.onNewIntent(intent);
protected void onStop() {
PluginWrapper.onStop();
super.onStop();
protected void onRestart() {
PluginWrapper.onRestart();
super.onRestart();
在项目中使用AnySDK
获取 AnySDK 参数
打开 AnySDK 客户端,点击 【打包工具】【游戏列表】【添加游戏】来在 AnySDK 客户端添加游戏项目。添加成功后,就可以获取到使用 AnySDK 需要的参数:appKey、appSecret、privateKey。
在项目中添加 AnySDK 功能代码
下面给出了我在使用 AnySDK 用过的相关功能代码供大家参考。AnySDK 具体用法请参考。
// 初始化AnySDk
initAnySDK: function () {
cc.log("WelcomeScreen.initAnySDK()");
if (cc.sys.isMobile) {
//注意:这里appKey, appSecret, privateKey,要替换成自己打包工具里面的值(登录打包工具,游戏管理界面上显示的那三个参数)。
var appKey = "23BEE66E-48A1-9BF0-CF4A-4DA25FF54082";
var appSecret = "b3d0c6f406c1f7d097fb4";
var privateKey = "FC69FBEDFCDA8A2D248CC45";
var oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";
var agent = anysdk.agentM
agent.init(appKey, appSecret, privateKey, oauthLoginServer);
agent.loadAllPlugins();
// 开启统计
cc.log("analytics_plugin.startSession();");
var analytics_plugin = anysdk.agentManager.getAnalyticsPlugin();
if (analytics_plugin) {
analytics_plugin.startSession();
// 开启推送服务
cc.log("push_plugin.startPush();");
var push_plugin = anysdk.agentManager.getPushPlugin();
if (push_plugin) {
push_plugin.startPush();
// 显示横幅广告
showBannerAd: function () {
cc.log("WelcomeScreen.showBannerAd()");
if (cc.sys.isMobile) {
var ads_plugin = anysdk.agentManager.getAdsPlugin();
if (ads_plugin.isAdTypeSupported(anysdk.AdsType.AD_TYPE_BANNER)) {
ads_plugin.showAds(anysdk.AdsType.AD_TYPE_BANNER);
// 显示插屏广告
showFullScreenAd: function () {
cc.log("showFullScreenAd()");
if (cc.sys.isMobile) {
var ads_plugin = anysdk.agentManager.getAdsPlugin();
if (ads_plugin.isAdTypeSupported(anysdk.AdsType.AD_TYPE_FULLSCREEN)) {
ads_plugin.showAds(anysdk.AdsType.AD_TYPE_FULLSCREEN);
// 统计事件
logEvent: function () {
cc.log("logEvent()");
if (cc.sys.isMobile) {
var analytics_plugin = anysdk.agentManager.getAnalyticsPlugin();
if (analytics_plugin) {
analytics_plugin.logEvent("click_logevent_btn")
// 退出游戏
onExitBtnClicked: function () {
cc.log("onExitBtnClicked()");
// 关闭统计
cc.log("analytics_plugin.stopSession();");
if (cc.sys.isMobile) {
var analytics_plugin = anysdk.agentManager.getAnalyticsPlugin();
if (analytics_plugin) {
analytics_plugin.stopSession();
// 在游戏结束或者适当的时候,调用unloadAllPlugins来卸载SDK插件
anysdk.agentManager.unloadAllPlugins();
cc.director.end();// 退出游戏
在项目中添加了 AnySDK 相关功能代码后,使用 CocosCreator 编译出 Android APK 母包。
生成渠道包
在 AnySDK 客户端配置好游戏的渠道、SDK等参数,然后使用上一步骤编译出来的 Android APK 母包生成集成了 SDK 的渠道包。
在这里就不详细说明 AnySDK 客户端的使用了,详情请参考 。
如何快速集成 AnySDK
我在 GitHub 上面分享了一个便于在 CocosCreator 项目的 Android 平台快速集成 AnySDK 的项目: 。具体使用方法请参考该项目的 README.md 文件,这里就不详细说明了。
更新:更新绑定文件为官方大神 panda 提供的
绑定文件。
本文主要讲解了如何在 CocosCreator 项目的 Android 平台集成 AnySDK ,并提供了一个快速集成方法。ios 平台请参考 AnySDK 的官方文档自行尝试。
转载请注明出处:http://eddy2015.github.io/blog//ccc-plus-anysdk/
15:59:25 UTC
顶大神,已收藏,需要的时候来看
01:35:30 UTC
这个一定要顶。最好以后还更随creator版本的更新而更新教程。
02:55:02 UTC
真是太好了。要是再来个iOS的就完美了。
03:09:14 UTC
盛赞!使用CocosCreator 和 AnySDK 的用户有福了。
03:17:54 UTC
03:36:35 UTC
膜拜大神~~~
03:38:37 UTC
ios 未尝试,你可以参考 AnySDK 相关文档尝试,应该不会有什么大问题,估计应该也是 jsb_anysdk_protocols_auto.cpp 文件需要进行修改。其实我之前用 ccc 1.0 版本的时候,jsb_anysdk_protocols_auto.cpp 文件不会报错的
03:46:07 UTC
赞楼主。说来惭愧,studio时代一直说的一体化一体化,其实只是把几个软件合在一个安装包里面而已,距离我想要的一体化还很远
现在Creator要做一体化就容易许多了。AnySDK团队正在给creator做一个扩展插件,按照目前的进度估计7月底能弄完。我先放两张图出来show一下
楼主的教程仍然很有价值。目前AnySDK团队只是“把AnySDK移植到Creator框架上”,还没有开始做真正集成工作流的事情。而深度集成,则需要把楼主说的整理改一下代码、那边改一下manifest.xml,上到javascript和JSON,下到C++和makefile,这些都不应该是用户需要学习和操作的,应该是一键“加入AnySDK打包支持”就能搞定。所以我们的处理脚本应该是照着楼主的文章写下来,自动化就OK啦。
03:49:05 UTC
大赞,太贴心了,祝creator蒸蒸日上。
03:51:01 UTC
我靠,这么快
04:00:31 UTC
谢谢!期待官方的插件。其实我自己也写了个简单的 Python 的脚本,就是把需要改动的文件 直接拷贝覆盖到新项目中,但使用这个脚本无法做到代码合并(即会覆盖替换掉之前的代码)。不过如果项目使用 git 之类的,还是很容易把代码给手动合并的。
04:03:07 UTC
Cocos Creator1.0用 AnySDK框架里的3.10的绑定文件,Cocos Creator 1.1.1 用AnySDK框架里的3.9 的绑定文件就可以了,不需要用他修改的文件
04:22:11 UTC
谢谢提醒,上面教程已改正。
04:39:17 UTC
试过了,AnySDK框架里的3.5-3.9文件也会报错。
05:06:47 UTC
真是不错 坐等更新
06:30:31 UTC
楼主,我错了,CocosCreator1.1.1带的引擎版本特殊(lite版),既不是3.9也不是3.10,所以AnySDK框架带的两个版本的脚本绑定文件都没法用~~~~~~
07:46:51 UTC
哇塞 ! 牛人越来越多了!
08:35:19 UTC
嗯,我验证了一下,在 Cocos Creator 1.1.1 用AnySDK框架里的 3.5-3.9 的绑定文件编译是会报错。文章已改回原样了。其实我对自己对 jsb_anysdk_protocols_auto.cpp 文件的改动也不是很放心的,虽然我测试过程中暂时没发现问题。可以暂时先用着,反正下个月底官方插件就出来了
其实我已经开了另外一个贴请教这个问题:
等待官方大神解答。
13:27:36 UTC
我iOS也接入成功了。但是 ads_plugin.showAds(AdsType.AD_TYPE_BANNER);显示广告的时候一点反应都没有用打包工具打包了,什么该加的也有加了。正常是不是调用 showAds 就会弹出广告?第一次接sdk表示很无奈~cocoscreator怎么接入anysdk framework_百度知道
cocoscreator怎么接入anysdk framework
我有更好的答案
在该界面构建出 Cosos工 程,构建出来的 Cosos 工程已经自动集成好了 AnySDK。调用初始化接口用户无需手动调用初始化接口; 构建发布.cpp 的 loadAllPlugins 方法 init方法,传递 appKey、appSecret、privateKey由于目前 AnySDK for Creator 的插件尚未发布,需要从 官网 下载独立的 AnySDK 客户端来进行创建游戏和打包。登陆 AnySDK 客户端,创建新游戏,得到三个参数。关于 AnySDK 客户端更多的介绍可以参考 客户端使用手册。服务端接入如果游戏接入用户和支付的话,需使用构建出的 Cocos 工程中 frameworks/runtime-src/Classes/SDKManager。统一登陆验证订单支付通知客户端接入构建项目点击菜单 项目 -&gt,需要游戏服务端处理登陆验证和支付验签相关逻辑,参考以下两篇文档进行接入
采纳率:92%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 cocoscreator 接入sdk 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信