Gradle实用配置笔记

  1. 两个依赖的assets下有相同文件导致冲突
    如高德地图2d和3d下的assets/location_map_gps_locked.png冲突处理:
android {
	packagingOptions {
		// pickFirsts:当出现重复文件,会使用第一个匹配的文件打包进入apk
		pickFirst 'assets/location_map_gps_locked.png'
	}
}
  1. 如果上面不行,报Entry name 'assets/location_map_gps_locked.png' collided错误,则
	packagingOptions {
		exclude 'assets/*'
	}
  1. 多个依赖版本时强制指定版本
    在project 的gradle下:
allprojects {
    repositories {
		....
    }

    configurations.all {
        // fix 依赖冲突
        resolutionStrategy.force "androidx.recyclerview:recyclerview:1.1.0"
    }
}
  1. 全局exclude依赖
    在app的gradle下:
defaultConfig {
    configurations.all {
        // 可选
        resolutionStrategy.cacheChangingModulesFor 1, 'seconds'
        all*.exclude group: 'com.google.guava', module: 'guava'
    }
}