极光推送android sdk集成步骤

*爱你&永不变心* 提交于 2020-01-16 01:59:32

推送,用极光,大家都说好,哈哈.

进入正题:

1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持。(基本上现在都已经支持了,循例说一下)位置  ,就是这个

2.在 module 的 gradle 中添加依赖和AndroidManifest的替换变量(建议先插入依赖包,再插入另外的ndk和manifestPlaceholders )

android {
    ......
    defaultConfig {
        applicationId "com.xxx.xxx" //JPush上注册的包名.
        ......

        ndk {
            //选择要添加的对应cpu类型的.so库。 
            abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a' 
            // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
        }

        manifestPlaceholders = [
            JPUSH_PKGNAME : applicationId,
            JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
            JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
        ]
        ......
    }
    ......
}

dependencies {
    ......

    compile 'cn.jiguang.sdk:jpush:3.0.0'  // 此处以JPush 3.0.0 版本为例。
    compile 'cn.jiguang.sdk:jcore:1.0.0'  // 此处以JCore 1.0.0 版本为例。
    ......
}

3.基本不会出现,这个是ndk(调用c或者c++语言的方法的转换器)版本太旧就导致的

注 : 如果在添加以上 abiFilter 配置之后android Studio出现以下提示:
    NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在 Project 根目录的gradle.properties文件中添加:
    android.useDeprecatedNdk=true

4.请在工程的混淆文件中添加以下配置:

看清楚文件位置和需要添加的东西

-dontoptimize
-dontpreverify

-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }

-dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; }

5.最重要的来了,如果app已经有了application类(启动应用执行的第一个类,在里面做很多前期准备的),就在里面写入极光推送的初始化代码,如果没有的就自己写一个类继承Application(下面以自己写的为例子)

package com.example.lym.jiguangtest;

import android.app.Application;

import cn.jpush.android.api.JPushInterface;

/**
 * Created by lym on 2016/12/22.
 */

public class TryJiGuang extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        JPushInterface.setDebugMode(true);
        JPushInterface.init(this);
    }
}

然后要在manifest文件里面对该类进行声明,到这里准备工作基本完成,可以开始测试了

6.运行app之后,看studio的log日志

测试确认

确认所需的权限都已经添加。如果必须的权限未添加,日志会提示错误。
确认 AppKey(在Portal上生成的)已经正确的写入 Androidmanifest.xml 。
确认在程序启动时候调用了init(context) 接口
确认测试手机(或者模拟器)已成功连入网络 + 客户端调用 init 后不久,如果一切正常,应有登录成功的日志信息
启动应用程序,在 Portal 上向应用程序发送自定义消息或者通知栏提示。详情请参考管理Portal。
在几秒内,客户端应可收到下发的通知或者正定义消息,如果 SDK 工作正常,则日志信息会如下:
[JPushInterface] action:init

.......

[PushService] Login succeed!
如图所示,客户端启动分为 4 步:
检查 metadata 的 appKey 和 channel ,如果不存在,则启动失败
初始化 JPush SDK,检查 JNI 等库文件的有效性,如果库文件无效,则启动失败
检查 Androidmanifest.xml,如果有 Required 的权限不存在,则启动失败
连接服务器登录,如果存在网络问题,则登陆失败,或者前面三步有问题,不会启动JPush SDK

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!