添加Google Play Services依赖遇错,求解决(需用BarcodeDetector)
解决BarcodeDetector依赖引入后的构建错误
嗨,我帮你分析下问题——你现在的问题根源是引入了完整的Google Play Services包,这个包包含了Google所有的服务模块,方法数直接超过了Android的65K方法数限制,哪怕开启了MultiDex也很容易引发构建冲突。咱们一步步来解决:
1. 替换为仅需的Play Services模块
BarcodeDetector其实只在play-services-vision这个子模块里,完全没必要引入整个臃肿的play-services包。你只需要修改Module级build.gradle的依赖:
把这一行:
compile 'com.google.android.gms:play-services:11.0.2'
替换成:
compile 'com.google.android.gms:play-services-vision:11.0.2'
2. 完善MultiDex配置(可选但推荐)
虽然你的minSdkVersion是21(Android 5.0及以上系统默认支持MultiDex),但为了避免一些潜在的运行时问题,建议显式添加MultiDex的依赖:
compile 'com.android.support:multidex:1.0.3'
3. 检查Gradle版本兼容性(可选)
你的项目用的Gradle插件是2.3.3,和Play Services 11.0.2是兼容的,但如果后续还是遇到奇怪的构建问题,可以考虑升级插件到更匹配的版本,比如3.0.1。修改项目级build.gradle中的classpath:
classpath 'com.android.tools.build:gradle:3.0.1'
同时记得把buildToolsVersion升级到和compileSdkVersion 26匹配的26.0.2:
buildToolsVersion "26.0.2"
4. 清理缓存并重建项目
完成以上修改后,先执行Android Studio的Build > Clean Project,再执行Build > Rebuild Project,彻底清除旧的构建缓存后重新编译项目。
这样操作后,不仅能解决依赖引入的错误,还能大幅减小APK的体积,毕竟只引入了你真正需要的条码扫描相关模块~
内容的提问来源于stack exchange,提问作者BramH




