[安卓]2dx 集成 uMeng 游戏统计分析 SDK

来源:互联网 发布:淘宝运营服务商可信度 编辑:程序博客网 时间:2024/05/17 18:02

链接:http://dev.umeng.com/game/game-cocos2d-n/quick-start-n

这里我吃了一憋,我竟然尝试使用 iOS 架构的静态库文件转译 android,太年轻啊!

还有,uMeng 的这份帮助文档是我在问过客服之后才找到的,真的有点儿难找,

我一直都是点进 “统计分析” 里面去找的,但这份该死的文档竟然是在 “游戏统计分析” 里面!

另外,uMeng sdk v2.0 中,去掉了 setAppVersion 这个方法,问了一下,不会影响到对 crash 的分析。

1. 在项目中集成SDK

1.1. Andorid

导入SDK

  • 先在友盟的管理后台中创建App,获得AppKey
  • 下载SDK并解压缩
  • 导入插件

    下载最新版SDK的zip包,将其中的mobclickcpphelper.jar文件复制到本地工程libs子目录下,将libMobClickCpp文件夹复制到[COCOS2DX_ROOT]/cocos2dx/platform/third_party/android/prebuilt目录下(cocos2d-x 3.0以上这个目录是[COCOS2DX_ROOT]/external

  • 配置

    Eclipse用户右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs...,选择指向jar的路径,点击OK

    注意

    Eclipse ADT 17 以上版本用户,不需要这个步骤,完成第一步的合并libs文件夹之后,在Eclipse里面刷新一下工程就好了。不要通过上述步骤手动添加jar包引用。 详情请参考Dealing with dependencies in Android projects.

  • 导入静态库

    • 修改你的工程Android.mk文件在LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static后添加LOCAL_WHOLE_STATIC_LIBRARIES += mobclickcpp_static
    • $(call import-module,cocos2dx)后添加$(call import-module,libMobClickCpp)
    • 如果你的工程没有使用libcurl库,还要在相应位置添加$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)(cocos2d-x 3.0以上请替换为$(call import-module,curl/prebuilt/android))和LOCAL_WHOLE_STATIC_LIBRARIES += cocos_curl_static
  • 导入完成

配置 AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

添加JAVA代码

  • 在游戏主Activity的onCreate方法中中加入如下代码:
MobClickCppHelper.init(this);//请务必添加在super.onCreate(savedInstanceState);之后

添加JNI相关代码

  • 在游戏主main.cpp中加入如下代码:
#include "MobClickJniHelper.h"

JNI_OnLoad方法中添加如下代码:

umeng::MobClickJniHelper::setJavaVM(vm);

注意

在cocos2d-x3.x中,JNI_OnLoad函数被移动到了[COCOS2DX_ROOT]/cocos/platform/android/javaactivity.cpp文件之中,我们需要把这个文件的JNI_OnLoad函数移动到main.cpp文件中,之后添加umeng::MobClickJniHelper::setJavaVM(vm);

javaactivity.cpp文件中:

/*jint JNI_OnLoad(JavaVM *vm, void *reserved){    JniHelper::setJavaVM(vm);    return JNI_VERSION_1_4;}*/

main.cpp文件中添加:

extern "C"{    jint JNI_OnLoad(JavaVM *vm, void *reserved)    {        JniHelper::setJavaVM(vm);        umeng::MobClickJniHelper::setJavaVM(vm);        return JNI_VERSION_1_4;    }}

1.2. iOS

导入SDK

  • 解压缩压缩包。
  • 导入插件

    所需文件: libMobClickCpp.a(请查看C++ Standard Library的设置,xcode默认的Compiler Defaultlibstdc++,如果您的项目正在使用libc++编译请使用libMobClickCppWithLibCpp.a) MobClickCpp.h

    请在你的工程目录结构中,右键选择Add->Existing Files…,选择这两个文件。或者将这两个文件拖入XCode工程目录结构中,在弹出的界面中勾选Copy items into destination group's folder(if needed), 并确保Add To Targets勾选相应的target。 如果你的工程没有使用libcurl库,还要把[COCOS2DX_ROOT]/cocos2dx/platform/third_party/ios/libraries/libcurl.a(cocos2d-x 3.0以上请替换为[COCOS2DX_ROOT]/external/curl/prebuilt/ios/libcurl.a)按照上面的方法加入到工程中。



0 0