开发者社区> 问答> 正文

移动推送集成失败排查文档是怎么做到的?



1 接入错误



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


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

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

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


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

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

进行如下操作进行gradle配置同步:
  1. [backcolor=transparent]Tools[backcolor=transparent] [backcolor=transparent]->[backcolor=transparent] [backcolor=transparent]Android[backcolor=transparent] [backcolor=transparent]->[backcolor=transparent] [backcolor=transparent]Sync[backcolor=transparent] [backcolor=transparent]Project[backcolor=transparent] [backcolor=transparent]with[backcolor=transparent] [backcolor=transparent]Gradle[backcolor=transparent] [backcolor=transparent]Files


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


移动推送的ut/utdid包和其他阿里sdk产生冲突怎么解决?如出现类似以下冲突:
  1. [backcolor=transparent]duplicate entry[backcolor=transparent]:[backcolor=transparent] com[backcolor=transparent]/.../[backcolor=transparent]utdid2[backcolor=transparent]/[backcolor=transparent]device[backcolor=transparent]/[backcolor=transparent]UTDevice[backcolor=transparent].[backcolor=transparent]class

由于ut/utdid包是阿里云产品的基础组件,阿里云很多产品SDK都需要集成。如果一个项目中集成了多个阿里云产品就有可能产生冲突。
首先,找到冲突的SDK所在位置,比较两个版本,保留其中一个,为了保证组件的兼容性,建议保留高版本的ut/utdid包;也可以根据项目中的需求进行斟酌保留。

2. 运行错误



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


推送SDK初始化时报如下错误:
  1. [backcolor=transparent]init cloudchannel failerr[backcolor=transparent]:[backcolor=transparent]10102[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] message[backcolor=transparent]:参数无效

出现上述问题的原因是您在控制台配置的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该如何解决

<a name="2.4 项目启动后报Could not find class *****" class="reference-link" style="box-sizing: border-box; color: rgb(0, 193, 224); background: 0px 0px; transition: color 0.2s; font-weight: inherit;">2.4 项目启动后报Could not find class *****


集成推送SDK后,在初始化的过程中会报类似如下错误:
  1. [backcolor=transparent]Could[backcolor=transparent] [backcolor=transparent]not[backcolor=transparent] find [backcolor=transparent]class[backcolor=transparent] [backcolor=transparent]'com.taobao.accs.utl.h$a'[backcolor=transparent],[backcolor=transparent] referenced [backcolor=transparent]from[backcolor=transparent] method com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].[backcolor=transparent]accs[backcolor=transparent].[backcolor=transparent]inteernal[backcolor=transparent].[backcolor=transparent]ACCSManagerImpl[backcolor=transparent].[backcolor=transparent]bindApp

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

展开
收起
猫饭先生 2017-10-24 09:39:56 1803 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
阿里邮箱—安全高效集成 立即下载
集成智能接入网关APP:优化企业级移动办公网络 立即下载
云效助力企业集成安全到DevOps中 立即下载