Android build.gradle配置详解

 build.gradle在充当Lib时,需要配置

apply plugin: 'com.android.library'

而当是App时则需要配置

apply plugin: 'com.android.application'

当方法数超过65533时,有两种解决方法,第一种进行分包,第二种不检查方法数超过65533,而不检查方法数时有一个弊端,就是不能兼容低版本,我们来看下配置(注意:分包不只是配置,还需要在dependencies里面引包)

defaultConfig {
    //分Dex包
    multiDexEnabled=true 
    //不进行方法数检查,也就是说可以超过65533
    dexOptions {
        jumboMode = true
    }
}

buildTypes可配置debug和relese版本不同的选项,也可配置多渠道打包

apply plugin: 'com.android.application'

def releaseTime() {
    return new Date().format("yyyy.MM.dd", TimeZone.getTimeZone("UTC"))
}
buildTypes {
        release {
            //开启混淆
            minifyEnabled true
            //打包优化
            zipAlignEnabled true
            //去除不必要的resource资源
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        //打包时输出的APK文件自定义文件名配置
        applicationVariants.all { variant ->
            //旧版的设置APK打包名称
            variant.outputs.each { output ->
                def outputFile = output.outputFile
                if (outputFile != null && outputFile.name.endsWith('.apk')) {
                    def fileName = "${variant.productFlavors[0].name}yjt_${defaultConfig.versionName}_release_${releaseTime()}.apk"
                    output.outputFile = new File(outputFile.parent, fileName)
                }
            }
            // 新版设置打包的APK名称
            variant.outputs.all {
                outputFileName =                                                                                 
                "KZY_Phone_${defaultConfig.versionName}_${releaseTime()}_release.apk"
           }
        }
        //开发测试版本
        debug {
            //versionNameSuffix "-debug"
            zipAlignEnabled false
            shrinkResources false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
        //多渠道打包
        productFlavors {
//            dk {
//                resValue "string", "app_name", "MyAppName"    //在strings.xml生成一条资源,相当于<string name="app_name">MyAppName</string>
//                resValue "string", "server_ip", "191.0.0.99"  //同上
//                resValue "color", "titleBarColor", "#ff0f3887"//在color.xml生成一条资源数据,原理和上面的string一样
//                buildConfigField "String","server_iport","\"191.0.1.99:9088\"" //在BuildConfig生成一条String类型的静态数据,获取通过BuildConfig.server_iport拿到
//                buildConfigField "String","rtc_version","\"2018-01-01\""
//                manifestPlaceholders = [app_icon: "@mipmap/dk_launch_icon",  //下面的配置都是配给Manifest的,在mainfest里面通过"${app_icon}"获取,下面同理
//                                        CHANNEL_VALUE: "dk",
//                                        APPTHEME:"@style/AppStartThemeDK",
//                                        LAUNCHER_ACTIVITY:"com.test.ui.welcome.Welcome_dk"]
//            }
        }
    }

假如你的项目中有用到.9.png图片,又或者你把JPG的图片扩展名改成png,这些都会使你打包失败,这时你需要加上这句话来屏蔽图片文件检测

aaptOptions {
        cruncherEnabled = false  //用来关闭Android Studio的PNG合法性检查的,直接不让它检查。
        useNewCruncher = false
    }

又假如你的逻辑代码没问题,但是由于兼容性等问题,Android studio给你标上了红线,你又打包不成功,我们又得屏蔽检测了,那我们加上下面的代码

lintOptions {
        checkReleaseBuilds false
        abortOnError false //在有错误时中止 false
    }

要是你的项目还在用Httpclient,我想你还要加上下面的代码才可以

//允许使用HttpClient
    useLibrary 'org.apache.http.legacy'

关于build.gradle配置先写这么多,后续还要更新,因为我记不住,必须记录下来,方便下次copy

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baoolong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值