Android · 2017年11月3日 0

在android studio3 问题汇总

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的场景
构建过程,需要动态增删改资源的场景,如删除一部分线上不应该出现的资源

Share this: