使用gradle打包时遇到的问题!

先贴上一段配置文件
  buildTypes {
        release {
            // 不显示Log
//            buildConfigField "boolean", "LOG_DEBUG", "false"
//
//            minifyEnabled true
//            zipAlignEnabled true
//            // 移除无用的resource文件
//            shrinkResources true
//            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
            signingConfig signingConfigs.release
        }

}

,gradle多渠道打包,网上有很多资料,很容易,但是在使用上面的这段配置的时候,使用gradle assembleRelease打包的时候,会提示好多warning,然后就会打包失败,报异常,java.io.IOException: Please correct the above warnings first,这个异常,如果做过混淆打包的人,应该会遇到过,虽然是警告,也会导致打包失败,我也是上网搜了好多这个问题的解决方法,大致就是使用

-dontwarn xx.xxx.**对警告的地方做处理,就是对引入的第三方jar包做处理,这个不是本文重点,我要说的是怎么不让它出现这些警告然后又能打包成功,解决办法就是把上面的配置文件的注释掉的部分注释点就行了,只要一句
signingConfig signingConfigs.release,就OK了。到底是为什么呢,先来一句一句分析。
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'当时我想如果不混淆不就可以了,不混淆的话就不会报那些warning,我就先把这句给注释了,然而还是会进行混淆,报warning,然后上面就剩三句配置了,1
minifyEnabled true,2 zipAlignEnabled true 3 shrinkResources true,先分析第一句 minifyEnabled true,设置了这句就会在打包的时候,就会对代码进行混淆处理,把这句注释掉就可以了,然后分析第二句 zipAlignEnabled true,这句是对zipAlign进行优化 zipAlign,Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整个系统运行得更快。我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本——即使你的程序是在老版本的Android平台下开发的,然后第三句shrinkResources true,这句配置是移除无用的resource文件。
  总结,如果项目比较大,又没有要求让混淆代码,可以在用gradle多渠道打包的时候,把minifyEnabled true去掉就OK了。



            
阅读更多
文章标签: gradle
个人分类: Android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭