Android 集成极光推送一次血的教训

这个问题因为自己的粗心,集成极光推送时足足浪费了我6个小时,上网搜教程不下于20篇,说多了都是泪。决定把记录下来,希望你们不要像我一样掉进坑里上不来。

埋雷的地方

在app module的build.gradle文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
buildTypes {


release {
minifyEnabled false
signingConfig signingConfigs.releaseConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

debug {
//估计我不说,大家都自己雷哪个配置了吧
minifyEnabled false
applicationIdSuffix ".debug"
signingConfig signingConfigs.releaseConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}


}

整合

过程就按照官方的来,什么清单文件配置了,库的复制了,资源文件复制了,细心点都不会出啥问题。

APPKEY获取

去官网创建应用获取APPKey 填好你的包名,创建后会有APPkey(这里注意下,我申请时填的包名是不带.debug的 这时就已经注定了后面的命运)

初始化极光库

在application里调用init方法

1
2
JPushInterface.setDebugMode(true);
JPushInterface.init(this);

Run

Build,跑起来,尼玛 有错误,意料之中 这时控制台抛出的错误如下

1
2
3
err0:D/JIGUANG-JCore: [ServiceHelper] We found the appKey is changed or register appkey is empty. Will re-register.
err1:E/ActivityThread: Failed to find provider info for com.example.ghwang.activytest.debug.DataProvider
err2:W/JIGUANG-JCore: [AndroidUtil] hasPermissionDefined error:com.example.ghwang.activytest.debug.permission.JPUSH_MESSAGE

err0 和 err2 对着教程对了一遍,确认了没错,然后就立马排除了。然后就被err1 足足坑了6个小时。。。。自己新建ContentProvider啦,改包名啦,把清单文件删了又重新对着教程一句一句贴啦。(能不能不要这么坑)其实err2包名里已经提示我有debug字眼,那好,就去清单里把debug加上呗,build一下固然没有权限的错误了。咳只怪build.gradle里那个雷埋的太深,打死我都想不到。
然后就是一直在网上搜err1的解决方法,一直搜到想放弃。最后去洗把脸回到座位上,在跑跑看看呗,控制台的一句实在是无关紧要的日志输出

1
Waiting for application to come online: com.example.ghwang.activytest.debug.test | com.example.ghwang.activytest.debug

What the fuck! debug?本着怀疑的精神,终于引导我要去埋雷的地方看看了,果然就发现了雷!注释掉,重新build,从官网后台发一个消息,久违的提示音,你好。
这一刻,我久久不能释怀,喝了口水,从座位站起来。万千思绪,涌上心头。。。。