cocos 项目 接入友盟 android 推送sdk

本文详细记录了在Cocos项目中接入友盟推送SDK的具体步骤,并解决了官方文档中存在的问题。包括添加必要的jar包、配置应用密钥、设置渠道ID及实现代码等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于 cocos 项目,按照友盟的官网文档接入步骤. 是无法成功编译的.

所以在这里做个记录.希望对和我一样是android菜鸟的同学有用
我用的SDK版本是最新的 2.7.0

1.先按照官网的步骤接入.

  • 把下载的SDK里面的PushSDK当做library引用导入自己的项目。
    这一步对于不用 eclipse的我来说.就是在project.properties很简单的添加一行代码 android.library.reference.1=../PushSDK ,然后把sdk copy到proj.android的同级目录
  • 把AndroidManifest.xml里面的${applicationId}替换成为自己项目的包名。
  • 把下载的eclipselibs目录下的okio-0.6.1.jar、wire-runtime-1.7.0.jar这两个文件拷贝到PushSDK的libs目录下。
  • 在自己项目的目录下找到project.properties,在里面加入manifestmerger.enabled=true。
  • 如果是android6.0以上的api编译,把SDK目录下的libs/里面的org.apache.http.legacy.jar拷贝到PushSDK的libs目录,然后加入buildpath里面(这一步我暂时没有做,后面接入gg的广告可能要整一下)

  • 然后是 android-support-v4.jar .这个包应该是需要的. 直接baidu一个 放到 proj.android 的libs目录下即可
    这是官网描述注意: 本SDK需要最新版本的 android-support-v4.jar 支持包。请在工程中添加 android-support-v4.jar 支持包。 关于v4 支持包说明, 请参考 http://developer.android.com/tools/support-library/features.html#v4。

2.添加AppKey & Umeng Message Secret
在项目工程的AndroidManifest.xml中的<Application>标签下添加:
<meta-data
    android:name="UMENG_APPKEY"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
</meta-data>
<meta-data
    android:name="UMENG_MESSAGE_SECRET"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
</meta-data>

把上述的umeng_appkeyumengmessage_secret修改为和自己App对应的值


3.添加Channel ID

你可以用Channel ID来标识APP的推广渠道,作为推送消息时给用户分组的一个维度。设置方法如下:
<application>标签下:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="Channel ID" >
</meta-data>
将"android:value"中的"Channel ID"替换为APP的推广渠道。


4.添加代码

import com.umeng.message.PushAgent;
import com.umeng.message.IUmengRegisterCallback;


    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        MobClickCppHelper.init(this);
        //这里是要添加的部分
        PushAgent mPushAgent = PushAgent.getInstance(this);
        mPushAgent.enable();
        mPushAgent.onAppStart();
        //要添加部分结束
        if(nativeIsLandScape()) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
        }
        if(nativeIsDebug()){
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        }
        hostIPAdress = getHostIpAddress();
    }

mPushAgent.enable();可以换成下面这个版本. 来获取测试设备的 device_token 用于测试推送消息

mPushAgent.enable(new IUmengRegisterCallback() {
    @Override
    public void onRegistered(String registrationId) {
        //onRegistered方法的参数registrationId即是device_token
        Log.d("device_token", registrationId);
    }
});


到此为止,官网的步骤已经结束了. 可是我用cocos studio编译是不通过的.而且完全看不到编译错误在哪. 你可以编译试试


5.好了.下面才是针对cocos项目的重头戏

  1. 在下载的sdk包里 找到这个文件 proguard-rules.txt copy到 PushSDK 目录下
  2. PushSDK 目录下创建一个src 文件夹
  3. src 目录下创建一个com文件夹
  4. com 目录下创建一个whatulike 文件夹
  5. whatulike 目录下创建一个whatulike2文件夹
  6. whatulike2 目录下创建一个whatulike.java文本文件

whatulike.java内容 随你,可以复制下面的…

package com.whatulike.whatulike2;

import android.app.Activity;
import android.os.Bundle;

public class WhatULike extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
    }
}

目前为止,你应该可以正确的编译了.用eclipse或者 cocos studio 都可以编译

然后就可以运行难是否成功接入以及查看测试设备的 device_token

对于用 nodejs 接入推送api的问题,
这里有个现成的轮子 https://www.npmjs.com/package/umengpush-node

have fun day.

<think>好的,用户想在Cocos Creator中集成友盟SDK进行统计或分析。我需要先回忆相关的步骤,并结合提供的引用内容来组织答案。 首先,根据引用2,用户提到在Cocos Creator中添加代码,通过jsb.reflection.callStaticMethod调用Java方法。这说明需要在Cocos的JavaScript代码中调用原生接口,然后在Android端实现对应的Java方法。 接下来,引用3中提到了将proguard-rules.txt文件复制到项目目录,并创建相应的Java文件结构。这可能涉及到Android Studio中的配置,比如添加SDK依赖、处理混淆规则等。 我需要分步骤说明,包括准备SDK、配置Android项目、添加Java代码、处理混淆以及调用方法。同时,要确保用户正确配置build.gradle文件,添加友盟的依赖库,并正确初始化SDK。此外,还需要注意包名和权限的配置,以及可能遇到的编译问题,如引用3提到的编译错误,可能需要检查文件路径和结构是否正确。 还要提醒用户测试和注意事项,比如确保包名一致,检查网络权限,以及使用正式签名包测试。可能的问题包括方法签名错误或SDK版本不兼容,需要指导用户如何排查这些常见问题。 最后,生成相关问题,帮助用户深入理解其他可能的集成需求,比如广告或推送功能,以及如何处理原生交互和性能优化。</think>### Cocos Creator集成友盟SDK教程 #### 一、准备工作 1. 下载友盟SDK:访问友盟开发者平台,获取最新版Android SDK(包含`umeng-common-x.x.x.jar`和统计模块)[^2] 2. 创建应用:在友盟后台注册应用,获取AppKey(需与Cocos项目包名一致) #### 二、Android项目配置 1. 导入SDK文件: ```bash # 将SDK文件放入项目目录 /build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs ``` 2. 修改`build.gradle`: ```groovy dependencies { implementation files('libs/umeng-common-x.x.x.jar') // 添加统计模块(根据需求选择) implementation 'com.umeng.umsdk:asms:1.4.1' // 基础组件库 } ``` 3. 配置AndroidManifest.xml: ```xml <!-- 添加权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <!-- 初始化SDK --> <meta-data android:name="UMENG_APPKEY" android:value="your_appkey"/> ``` #### 三、Java代码集成 1. 创建AppActivity扩展类(参考引用3的文件结构): ```java package org.cocos2dx.javascript; import com.umeng.analytics.MobclickAgent; public class AppActivity extends Cocos2dxActivity { @Override protected void onResume() { super.onResume(); MobclickAgent.onResume(this); // 友盟统计 } @Override protected void onPause() { super.onPause(); MobclickAgent.onPause(this); // 友盟统计 } // 自定义统计方法(示例) public static void trackEvent(String eventId) { MobclickAgent.onEvent(getContext(), eventId); } } ``` #### 四、JavaScript调用示例 ```javascript // 游戏启动时初始化 if (cc.sys.os === cc.sys.OS_ANDROID) { jsb.reflection.callStaticMethod( "org/cocos2dx/javascript/AppActivity", "trackEvent", "(Ljava/lang/String;)V", "game_start" ); } // 自定义事件统计 function trackCustomEvent(eventName) { if (cc.sys.os === cc.sys.OS_ANDROID) { jsb.reflection.callStaticMethod( "org/cocos2dx/javascript/AppActivity", "trackEvent", "(Ljava/lang/String;)V", eventName ); } } ``` #### 五、混淆配置(引用3) 将友盟提供的`proguard-rules.txt`文件复制到项目目录: ```bash /android/app/proguard-rules.pro ``` #### 六、测试验证 1. 编译APK时检查是否包含友盟SDK 2. 运行游戏后查看友盟后台数据更新状态 3. 使用`adb logcat`查看SDK初始化日志 §§ 1. 确保Cocos项目包名与友盟后台注册一致 2. 需要添加`INTERNET`权限(引用2) 3. 推荐使用正式签名包测试统计功能 4. 如果出现编译错误,检查文件路径是否匹配(引用3的问题)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值