1. 在android studio3 下面,使用multiDexEnabled true造成导出的包缺少内容(support-v4)
如图:图一添加使用multiDexEnabled true,图二没有添加multiDexEnabled
有没有其他理想的解决方法,希望大家评论给我,谢谢
2.在build.gradle中忽略重复的引用,使用exclude(如果想在一个包忽略多个添加多行)
格式:implementation(‘引用的库’){
exclude group:’包名’,module:’模块名称(通常是包名后面和版本直接的内容)’
}
如果是 implementation project需要写成这种格式(把project扩在小括号中)
implementation(project(‘……’)){
…同上
}
注意:可以单独使用group和module(推荐都写上)
例如:
implementation(‘com.google.android:flexbox:0.2.3’) {
exclude group: ‘com.android.support’, module: ‘appcompat-v7’
}
3. implementation 和compile 区别 (compile是被废弃了)
在AS3.0默认推荐使用implementation,如果依赖有问题使用api代替implementation,
更多参考:(自备梯子)https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
或者:(不用梯子)https://developer.android.google.cn/studio/build/gradle-plugin-3-0-0-migration.html
4.所有项目使用指定库配置(更多请参考:http://www.jianshu.com/p/429733dbbc34)
例如:
allprojects {
repositories {
jcenter()
google()
}
configurations.all((Closure) {
resolutionStrategy {
force ‘com.android.support:support-v4:26.0.2’ // your version of support library
}
})
}
希望大家评论交流!!!
转自:http://www.zdltech.com/blogphp/archives/1335.html
aapt2的作用说明
开启了aapt2后,资源的增量编译会加速编译速度,但是有些场景aapt2并不是很合适,因此必要的情况下,建议关闭aapt2,比如jenkins上构建时,我们并不需要增量编译,因此可以关闭,可以通过gradle参数达到关闭的效果,命令如下
1
gradle assembleRelease -Pandroid.enableAapt2=false
简单总结了几种不适合使用aapt2的场景
插件化和热修复中,需要使用public.xml的场景
构建过程,需要动态增删改资源的场景,如删除一部分线上不应该出现的资源