Android极光推送(一)手动集成(步骤4)

版权声明:本文为博主原创文章,不得随意转载,转载请注明出处!!! https://blog.csdn.net/YuDBL/article/details/84945580

注意:感觉博客 网易博客迁移: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文件

猜你喜欢

转载自blog.csdn.net/YuDBL/article/details/84945580