注意:感觉博客 网易博客迁移:Android极光推送(一)手动集成【完整版】自己写的这篇太长了,为了方便查阅把他拆分,这是步骤4
11、代码测试极光推送
在自定义的Application中onCreate中调用极光推送的初始化方法
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true); //正式环境时去掉此行代码
JPushInterface.init(this);
}
}
然后在 AndroidManifest.xml 文件中关联MyApplication
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
运行项目,然后可以去官网,推送测试一下了!
OK,接收成功!
12、失败常见问题
运行编译app时报错:
把下面几个问题解决,就没此问题了!!!
(1)drawable-hdpi目录下的xml文件复制到drawable目录下
xml文件要放到drawable里面
(2)图片引入错误
PushSetActivity可能会报错,那是因为引入图片方式还是eclipse时候的方式,极光推送的开发工程师也够懒的没有更新!我们把引入图片“drawable”改成“mipmap”吧!如下
(3)错误: 程序包R不存在
手动引入R文件: import 主包名.R
(4)运行项目出现两个app
原因:把极光程序AndroidManifest.xml中 "测试的主程序" 复制到项目里面去了,把它删掉即可!
<!-- For test only 测试的主程序-->
<activity
android:name="com.example.jpushdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
(5)推送有问题:没有满足条件的推送目标
此问题花了二个小时,测试可以,放到项目怎么就不可以了!
原因:包名的问题。项目刚建立的时候我修改过包名,开始包名为:com.luminal.greendao.myapplication
修改以后清单文件AndroidManifest.xml显示的新包名为:com.luminal.mjptouch
旧包名还出现在logcat区域里面,我就有点纳闷!
解决方式:
A、applicationId 肯定还对应旧的包名,需改成新包名:com.luminal.mjptouch
注:这个才是推送失败的关键点!
所以极光官网推送应用的包名 对应 AndroidManifest.xml的package、build.gradle的applicationId
B、有洁癖的话,也可以执行下面的操作:
把androidTest包中的类ExampleInstrumentedTest的assertEquals方法代码改为
// assertEquals("com.luminal.greendao.myapplication", appContext.getPackageName());
assertEquals("com.luminal.mjptouch", appContext.getPackageName());
删除旧包名有关资源:GreenDao_Projects2.iml文件