Android Studio 2.3升级到3.0时的几处改动

1、指定生成的apk文件名

2.3 的版本

applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    def flavorName = variant.productFlavors[0].name
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        def apkName
                        apkName = "${defaultConfig.versionName}-${defaultConfig.versionCode}-${flavorName}.apk";
                        output.outputFile = new File(outputFile.parent, apkName)
                    }
                }
            }

3.0 的版本:

android.applicationVariants.all { variant ->
                variant.outputs.all {
                    def flavorName = variant.name
                    def apkName
                    apkName = "${variant.versionName}-${variant.versionCode}-${flavorName}.apk";
                    outputFileName  = apkName
                }
            }

2、对java8的支持,那么retrolambda的插件就可以移除了

//apply plugin: 'me.tatarka.retrolambda'

3、关于protuctFlavor的改动
直接升级上来,build.gradle不改的情况,如果有设置多个productFlavor,那么不出意外会出现下面的错误:

Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

解决办法:在build.gradle 里加一行:

flavorDimensions "default"

改完如下:

android{
        ...
        flavorDimensions "default"
        ...
}

4、multidex的支持
遇到的错误:

Unable to resolve dependency for ':app@devDebug/compileClasspath': Could not resolve com.android.support:multidex:1.0.2. Open File Show Details

在工程根目录下的build.gradle文件中allprojects的repositories里加入:

maven { url 'https://maven.google.com' }

5、vector drawable的支持相关:

Error:java.lang.RuntimeException: Error while processing C:\android_code.git\app\src\main\res\drawable\ic_done_reset_password_again.xml : Can't process attribute android:fillColor="@color/reset_pwd": references to other resources are not supported by build-time PNG generation. See http://developer.android.com/tools/help/vector-asset-studio.html for details.

直接改成具体的颜色值即可

6、Error:java.lang.RuntimeException: Manifest merger failed : Attribute application@icon value=(@drawable/app_logo) from AndroidManifest.xml:109:9-42
解决办法:
在AndroidManifest文件中的application节点tools:replace=”icon”

原文链接在这里

7、Caused by: java.lang.NoSuchMethodError: No virtual method keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView; in class Ljava/util/concurrent/ConcurrentHashMap; or its super classes (declaration of ‘java.util.concurrent.ConcurrentHashMap’ appears in /system/framework/core-libart.jar)

好吧,这么坑爹的问题,暂时的解决办法是将申明的ConcurrentHashMap类型改为Map,实例化的时候用ConcurrentHashMap是没关系的。经等google爸爸修改这个bug吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值