android 自动升级不需人为干涉,Androidstudio升级3.0后的一些问题解决

最近升级了下androidstudio从2.3.3到3.0.1,升级后,立马就各种编译错误了。最终也是网上查的各种资料,糊里糊涂的搞好了。都比较乱,自己整理下发出来,以后直接找自己的笔记了。

1.打包输出配置问题

4a68994ee666

studio1.png

这里提示 Cannot set the value of read-only property 'outputFile' ........

点击错误提示里的Open File 打开对应的gradle文件一看(定义的不用看,每人的都有点差别):

4a68994ee666

studio3.png

3.0版本,outputFile属性只读了。只能通过另一种方式配置,改成下面这样既可:

android.applicationVariants.all { variant ->

//这俩定义是我工程自己的,每人都不同,用自己的就行,

def nextGetFunctionName = "${variant.buildType.name}";

def nextGetFunctionNameOK = nextGetFunctionName.substring(0,1).toUpperCase()+nextGetFunctionName.substring(1,nextGetFunctionName.length()).toLowerCase();

//这才是3.0的改动地方

variant.outputs.all {

outputFileName = "随便自定义名字-${nextGetFunctionNameOK}-${releaseTime()}.apk"

}

}

重新编译,这个打包输出配置错误就Over了。中间会有些能自动解决的错误提示,无非是编译版本问题,点击Update Build Tools version and sync project即可。进入下一个坑。

2.retrolambda警告及批量打包配置error

4a68994ee666

studio4.png

第一个retrolambda警告是因为studio3.0后,直接用的java8里面的lambda支持了,就是我们不需要声明引入这个库了。把相关retrolambda库配置去掉即可。我这里的位置直接注释了:

4a68994ee666

studio5.png

这个警告问题Done

第二个是批量打包flavos配置错误,跟之前的打包输出一样,3.0针对这个项也改了。原来的配置是这样的:

productFlavors {

ks {}

huawei {}

}

明显不合时宜了。改成下面这样就行了

flavorDimensions "default"

productFlavors {

ks {dimension "default"}

huawei {dimension "default"}

yingyongbao {dimension "default"}

t360 {dimension "default"}

jinbaobei {dimension "default"}

}

productFlavors.all {

flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

重点就是新版需要指定dimension这个东东。 到此,重新编译,之后还有会什么google()配置的错误,点击sync就行了,ide自动配置修复了。Over

3.Could not resolve project : xxxxx

这是加载我们的Module有错误了。下面这样的:

4a68994ee666

studio6.png

这些Module为啥都报错呢,新版本要求gradle配置编译类型buildTypes时,增加preview版本,如下是我的:

buildTypes {

release {

signingConfig signingConfigs.release

minifyEnabled false

buildConfigField "int", "BUILD_TARGET", "3"

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

// 移除无用的resource文件

shrinkResources false

buildConfigField "boolean", "LOG_DEBUG", "false"

}

gama {

signingConfig signingConfigs.release

buildConfigField "int", "BUILD_TARGET", "2"

buildConfigField "boolean", "LOG_DEBUG", "false"

}

debug {

signingConfig signingConfigs.release

buildConfigField "int", "BUILD_TARGET", "0"

buildConfigField "boolean", "LOG_DEBUG", "true"

}

//划重点,上面三个不要管,是我自己工程的配置,主要是下面这个,添加到buildTypes里面就行

preview {

signingConfig signingConfigs.release

//重要的是这句,这个指明上面那走自己的,不干涉

matchingFallbacks = ['release', 'gama', 'debug']

}

}

这个加完,还没完事。所有的module中,都得加入一样的buildType ,之前我的module没有这个配置,通通加上了, 当然,加上最简单的就行。重要的是:app的buildtypes有几种,module需要加入一样的几种(release,gama,debug)。如果工程app只需要一种,或者两种,就写那一两种,加上preview就完事了。我的其他Module通通加了个最简单配置,如下:

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

gama {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

debug {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

preview {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

matchingFallbacks = ['release']

}

}

把你们那些报错的module中的gradle通通加上这个,try again就完事了。

我升级时,就这几个错误,如果有发生其他错误,再自行度娘股沟吧~

4a68994ee666

hehe.png

以上,Finish!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值