全部产品
云市场
云游戏
    移动推送 Android 端集成失败排查文档

移动推送 Android 端集成失败排查文档

更新时间:2020-08-06 14:42:25

1 接入错误

1.1 从GitHub上导入Android Studio(gradle)版本Demo后报错

导入Android Studio(gradle)版本Demo后报错,如下图:

按照错误提示配置工程中Android SDK的路径或设置对应的本地环境变量。

1.2 编译时出现大量报警信息

集成推送SDK后在编译过程中有如下大量的警告信息:

这是由于SDK为兼容用户集成编译环境,采用了较低版本编译器导致,上述警告信息不会影响功能的正常使用。

1.3 建项目报错:”AGPBI: {“kind”:”error”,”text”:”warning…”

在集成移动推送SDK进行项目构建时如出现:

  1. AGPBI: {"kind":"error","text":"warning: Ignoring InnerClasses attribute for an anonymous inner class","sources":[{}]}

进行如下操作进行gradle配置同步:

  1. Tools -> Android -> Sync Project with Gradle Files

1.4 移动推送的ut/utdid包和其他阿里sdk产生冲突

移动推送的ut/utdid包和其他阿里sdk产生冲突怎么解决?如出现类似以下冲突:

  1. duplicate entry: com/.../utdid2/device/UTDevice.class

由于ut/utdid包是阿里云产品的基础组件,阿里云很多产品SDK都需要集成。如果一个项目中集成了多个阿里云产品就有可能产生冲突。

首先,找到冲突的SDK所在位置,比较两个版本,保留其中一个,为了保证组件的兼容性,建议保留高版本的ut/utdid包;也可以根据项目中的需求进行斟酌保留。

2. 运行错误

2.1 初始化时报init cloudchannel failerr:10102 - message:参数无效:illegal package for **

推送SDK初始化时报如下错误:

  1. init cloudchannel failerr:10102 - message:参数无效

出现上述问题的原因是您在控制台配置的APP PackageName、AppKey、AppSecret与您的工程中的ApplicationID、AppKey、AppSecret不一致导致的。请重新检查,确保工程配置和控制台中的App配置一致。

2.2 推送在初始化时报”java.lang.UnsatisfiedLinkError”或”TNET-JNI-LOAD-SO-FAIL“错误

推送SDK包含有so包(libtnet、libcocklogic),出现上述错误都是由于so包没有被成功加载导致的。请通过以下方法确认so包是被被正常添加。

详细配置文档可参考:移动推送Android SDK:推送在初始化时报”java.lang.UnsatisfiedLinkError”或”TNET-JNI-LOAD-SO-FAIL“错误,这是什么原因引起的?

2.3 集成SDK后运行App报java.lang.NoClassDefFoundError

接入了移动推送SDK,运行时报出java.lang.NoClassDefFoundError找不到某个类,但SDK中明明包含这个类,为什么会这样?

如果您的App工程使用了multidex架构,可能会出现java.lang.NoClassDefFoundError,原因在于:推送SDK由于需要在application中进行初始化,所以相关类需要被放到MainDex文件中,否则在app启动时可能会报错。

具体解决方案可参考:移动推送Android SDK:集成SDK后运行App报java.lang.NoClassDefFoundError该如何解决

2.4 项目启动后报Could not find class *****

集成推送SDK后,在初始化的过程中会报类似如下错误:

  1. Could not find class 'com.taobao.accs.utl.h$a', referenced from method com.taobao.accs.inteernal.ACCSManagerImpl.bindApp

该错误消息是因为SDK在初始化过程中无法找到相关类,这部分类不是推送SDK的必须类,公共版SDK为减小SDK大小并未将相关类打入SDK中。缺少相关类不会影响推送功能的正常使用,请放心使用。