当前位置:   article > 正文

Android日常(09)同时集成umeng的推送和统计两个功能时,在打release包所遇到的代码混淆的问题_failed to transform utdid-1.1.5.3.aar (com.umeng.u

failed to transform utdid-1.1.5.3.aar (com.umeng.umsdk:utdid:1.1.5.3) to mat

写在前面的话

最近在维护一个老项目,项目里面需要接入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'//新版本的统计库
  • 1

// //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"
    }
  • 1
  • 2
  • 3

处理方式

第一个问题版本依赖的处理:
umeng的sdk在有版本更新,库的内容有所不同,尽量使用最新的版本库,不要保留原有的依赖库,如果项目中出现报错,那么改掉就好了,不过实践发现,umeng的版本兼容还是做得挺好的

第二个问题出现的原因:
是因为gradle可以在debug包中对应用id进行扩展,扩展以后会导致应用包名跟你后台com.xxx.yyyy的配置不同,所以初始化会报错,另外新老版本在使用上也有一些差别

组件化过程中遇到的umeng集成问题

简单描述一下:

gradle里面的applicationId配置的是应用程序的包名。而还有一种叫做资源文件包名,也就是我们的AndroidManifest.xml文件,其中也有一个包名的配置:package="xxx“。我们需要将它也要改成跟gradle里面的applicationId一样的包名值。
看一下我们的项目,当我们安装umeng插件的时候相关的图片资源是放在app module的资源目录下面的。
在这里插入图片描述

报错信息:

Android问题解决方案 ResClass未初始化,请确保你已经添加了必要的资源。同时确保你在混淆文件中添加了.R$ 。 field=*

解决办法:

在这里插入图片描述
在这里插入图片描述

这两个包名保持一致

结束语

喜欢加个关注支持一下后续会有更多更新内容

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/285526
推荐阅读
相关标签
  

闽ICP备14008679号