AndroidStudio3.0升级gradle配置填坑

由于升级了AndroidStudio3.0,其他配置也得跟着升,首当其冲的就是gradle,不得不升级到3.0,但由此带来了一系列问题。记录一下,希望帮助有缘人!!!

问题一

Cannot set the value of read-only property ‘outputFile’….

出现此错误,是由于build.gradle里面指定了apk输入路径导致,新版gradle已经去除outputFile属性,无法再通过之前的output.outputFile = new File(dir,newName)输入到指定目录了。

新版可直接指定outputFileName = new File(dir,newName),同时variant.outputs.each需改为variant.outputs.all即可。

问题二

Could not get unknown property ‘apkVariantData’ for object of type com.android……

发生此问题一般是导入了微信的资源压缩文案AndResGuard,可以升级最新的1.2.8版本即可解决。

问题三

com.android.dex.DexException: Multiple dex files define Lorg/jsoup/nodes/Attributes Dataset DatasetIterator;

如果之前想体验java8 lambda的美妙之处引用了retrlambda,而又不凑巧用到了jsoup,那么恭喜,很大可能会出现此错误,解决办法也简单,升级buildToolsVersion到26,新版本的tools默认已经支持lambd表达式了,不再需要另外引用第三方库了,因此升级版本后可以直接去掉retrolambda库的引用。

问题四

对于多渠道大家肯定都会有配置,但现在又出问题了,升级gradle后对后有渠道需要指定统一的风格,具体什么作用,暂时还不清楚,不过可能对性能有优化吧,纯属猜测。类似如下:

如果针对每个渠道去配置,过程稍显繁琐,在此提供一个简单方式设置。

以上就是本次填坑总结了,下次遇到继续补充。