赞
踩
最近在维护一个老项目,项目里面需要接入Umeng Push,但是在添加依赖的时候和初始化获取deviceToken的时候遇到了一些问题:
1.依赖报错,找不到对应的类或方法
2.获取deviceToken失败,报告应用app包名不正确
第一个问题:
添加依赖:因为之前项目中依赖过Umeng Analyze,所以基础库之前有过依赖
原来的依赖信息
// compile ‘com.umeng.sdk:common:latest.integration’
// compile ‘com.umeng.sdk:analytics:latest.integration’
新版本依赖信息
compile ‘com.umeng.umsdk:common:2.0.0’//新版本的基础库
compile 'com.umeng.umsdk:analytics:8.0.0'//新版本的统计库
// //PushSDK必须依赖基础组件库,所以需要加入对应依赖
// compile ‘com.umeng.umsdk:common:1.5.4’
// //PushSDK必须依赖utdid库,所以需要加入对应依赖
compile ‘com.umeng.umsdk:utdid:1.1.5.3’
//PushSDK
compile ‘com.umeng.umsdk:push:6.0.1’
第二个问题:
applicationId “com.xxx.yyyy”
buildTypes {
debug {
debuggable true
applicationIdSuffix ".debug"
}
第一个问题版本依赖的处理:
umeng的sdk在有版本更新,库的内容有所不同,尽量使用最新的版本库,不要保留原有的依赖库,如果项目中出现报错,那么改掉就好了,不过实践发现,umeng的版本兼容还是做得挺好的
第二个问题出现的原因:
是因为gradle可以在debug包中对应用id进行扩展,扩展以后会导致应用包名跟你后台com.xxx.yyyy的配置不同,所以初始化会报错,另外新老版本在使用上也有一些差别
gradle里面的applicationId配置的是应用程序的包名。而还有一种叫做资源文件包名,也就是我们的AndroidManifest.xml文件,其中也有一个包名的配置:package="xxx“。我们需要将它也要改成跟gradle里面的applicationId一样的包名值。
看一下我们的项目,当我们安装umeng插件的时候相关的图片资源是放在app module的资源目录下面的。
Android问题解决方案 ResClass未初始化,请确保你已经添加了必要的资源。同时确保你在混淆文件中添加了.R$ 。 field=*
这两个包名保持一致
喜欢加个关注支持一下后续会有更多更新内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。