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进行项目构建时如出现:
AGPBI: {"kind":"error","text":"warning: Ignoring InnerClasses attribute for an anonymous inner class","sources":[{}]}
进行如下操作进行gradle配置同步:
Tools -> Android -> Sync Project with Gradle Files
1.4 移动推送的ut/utdid包和其他阿里SDK产生冲突
移动推送的ut/utdid包和其他阿里S产生冲突怎么解决?如出现类似以下冲突:
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初始化时报如下错误:
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后,在初始化的过程中会报类似如下错误:
Could not find class 'com.taobao.accs.utl.h$a', referenced from method com.taobao.accs.inteernal.ACCSManagerImpl.bindApp
该错误消息是因为SDK在初始化过程中无法找到相关类,这部分类不是推送SDK的必须类,公共版SDK为减小SDK大小并未将相关类打入SDK中。缺少相关类不会影响推送功能的正常使用,请放心使用。