升级Android Studio后编译报错:Program type already present: android.support.v4.app.BackStackState$1
Program type already present: android.support.v4.app.BackStackState$1错误 我一眼就看出这个问题的根源——Android Support v4库被重复依赖了,结合你给出的gradle配置,冲突点很明确:
一方面你手动引入了本地的support-v4-19.0.1.jar,另一方面你依赖的com.google.android.gms:play-services:+会自动拉取更高版本的support-v4库,两个版本的库同时存在,就会触发D8编译报错。
给你一套亲测有效的解决步骤:
第一步:移除重复的本地support-v4依赖
打开app模块的gradle文件,删掉这一行:compile files('libs/support-v4-19.0.1.jar')第二步:固定play-services的版本,别用
++会自动拉取最新版本,非常容易引发依赖冲突。根据你的targetSdkVersion是23,推荐用适配Android 6.0的稳定版本:compile 'com.google.android.gms:play-services:10.2.6'第三步(推荐优化):替换废弃的
compile为implementation
从Android Gradle Plugin 3.0开始,compile已经被标记为废弃,implementation是更规范的声明方式,把所有compile都换成implementation:implementation 'com.google.android.gms:play-services:10.2.6' implementation files('libs/dagger-1.2.2.jar') implementation files('libs/javax.inject-1.jar') implementation files('libs/nineoldandroids-2.4.0.jar')第四步:清理重建项目
点击Android Studio工具栏的Build→Clean Project,然后再点Build→Rebuild Project,让依赖重新同步。
另外,额外给你一个优化建议:你的根目录gradle里用的是com.android.tools.build:gradle:3.1.2,可以升级到3.2.1版本,和你的buildToolsVersion "27.0.3"兼容性更好:
classpath 'com.android.tools.build:gradle:3.2.1'
内容的提问来源于stack exchange,提问作者user6889084

