1.在JPush官方下载 JPush SDK(jpush-android-arm-2.1.0.zip),我下载的是2.1.0;

2.解压下载好的压缩包(jpush-android-arm-2.1.0.zip),并复制libs/jpush-android-2.1.0.jar 到工程 libs/ 目录下,再复制libs/armeabi/libjpush210.so 到工程 libs/armeabi 目录下(如果没有armeabi文件夹自己新建就可以了,如果libs下还有armeabi-v7a文件夹,则需要把libjpush210.so复制到此文件夹下);

3.在AndroidManifest.xml文件中配置权限:

    <!-- 这些权限都需要加入到Manifest中 -->
<permission android:name="自己的包.jpushdemo.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="自己的包.jpushdemo.permission.JPUSH_MESSAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

 <!-- 需要在Application中注册服务和广播接收器 -->
<service
android:name="cn.jpush.android.service.PushService"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="cn.jpush.android.intent.REGISTER" />
<action android:name="cn.jpush.android.intent.REPORT" />
<action android:name="cn.jpush.android.intent.PushService" />
<action android:name="cn.jpush.android.intent.PUSH_TIME" />
</intent-filter>
</service> <receiver
android:name="cn.jpush.android.service.PushReceiver"
android:enabled="true" >
<intent-filter android:priority="1000">
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
<category android:name="johntest.org.hl.john.johntest.jpushdemo" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="自己的包.jpushdemo" />
</intent-filter>
</receiver> <activity
android:name="cn.jpush.android.ui.PushActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden" >
<intent-filter>
<action android:name="cn.jpush.android.ui.PushActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="自己的包.jpushdemo" />
</intent-filter>
</activity>
        <service
android:name="cn.jpush.android.service.DownloadService"
android:enabled="true"
android:exported="false" >
</service>
<receiver android:name="cn.jpush.android.service.AlarmReceiver" />
<!-- JPUSH_CHANNEL 是为了方便开发者统计APK分发渠道。-->
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
<meta-data android:name="JPUSH_APPKEY" android:value="自己的AppKey"/>

Manifest配置好了(自己的包是自己的工程的包,自己的AppKey是从JPush上面新建项目而来的,自己可在JPush官网注册登录创建一个App就会生成这个key,要推送也必须要这个key才行)

4.最后在自己的Activity中调用这两个方法,才能启动。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 必须setDebugMode() 和 init()
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}

配置完成就可以试试成功了!

但,有很多还是运行不了出现这个错误([JPushGlobal] JPush .so file do not match JPush .jar file in the project, Failed to init JPush)

造成这个错误的原因是Android Studio没有正确加载这个文件(libjpush210.so)。

我们可以在工程APP目录下找到 build.gradle 文件,打开它

//在android下添加这个一个sourceSets.main
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}

然后我们的程序应该就可以正常运行了!

打开软件,在JPush上推送消息尝试一下。

最新文章

  1. iOS Webview 实现修改javascript confirm 和 alert
  2. 2016年&amp;2017年
  3. java课后作业6
  4. popupwindow点击空白处如何自动消失?
  5. VLAN
  6. 搭建的SSH 框架
  7. syslog-ng 安装
  8. Vue.js学习 Item11 – 组件与组件间的通信
  9. django笔记
  10. easy ui 表单元素input控件后面加说明(红色)
  11. bzoj2131
  12. iOS开发 - 应用内打开第三方应用并传值
  13. 【原版的】Redis事件驱动内核
  14. iOS网络编程笔记——XML文档解析
  15. macaca测试web小例子
  16. asp.net core权限模块的快速构建
  17. ThinkPhp5.0_文件上传
  18. Image和Base64互相转换
  19. 在pycharm中查看内建函数源码
  20. A1086. Tree Traversals Again

热门文章

  1. 【Linux日志】系统日志及分析
  2. 转:内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]
  3. 根据用户输入的二代身份证号码自动为其计算生成出生日期的javascript方法
  4. PacBio软件总览 - 初级分析
  5. phonegap插件加载与使用
  6. openmpi出现Segmentation Fault而终止运算
  7. astyle 使用说明
  8. poj1190 生日蛋糕(深搜+剪枝)
  9. Druid:一个用于大数据实时处理的开源分布式系统
  10. VMware vSphere Client5.0与 Windows8不再有问题,解决VMware 5.0 客户端提示VMRC控制台的连接已断开