今天运行项目,运行的debug出来的包竟然是命名过的,但是我的buildTypes里面的debug 并没有执行重命名操作。很奇怪,我的猜测是: 执行buildTypes的时候,虽然是assermdebug,但是确实走了release里面的东西

求大神指点:

build.gradle:

  1. apply plugin: 'com.android.application'
  2. android {
  3. compileSdkVersion 23
  4. buildToolsVersion "23.0.2"
  5. useLibrary 'org.apache.http.legacy'
  6. defaultConfig {
  7. applicationId "com.aaa.ccc"
  8. minSdkVersion 14
  9. targetSdkVersion 23
  10. multiDexEnabled true
  11. buildConfigField("String", "ChannelId", '"116118"') //渠道号
  12. }
  13. buildTypes {
  14. debug {
  15. buildConfigField "boolean", "LOG_DEBUG", "true" //log 日志
  16. buildConfigField "String", "URL_CONFIG", "\"huidu\"" // url 配置:official,huidu,fangzhen
  17. minifyEnabled false
  18. zipAlignEnabled false
  19. debuggable true
  20. shrinkResources false
  21. }
  22. release {
  23. minifyEnabled true
  24. proguardFiles 'proguard-project.txt'
  25. debuggable false
  26. buildConfigField "boolean", "LOG_DEBUG", "false"
  27. buildConfigField "String", "URL_CONFIG", "\"official\""
  28. def versionN = getTodayReleaseVersion()
  29. applicationVariants.all { variant ->
  30. variant.outputs.each { output ->
  31. def outputFile = output.outputFile
  32. if (outputFile != null && outputFile.name.endsWith('.apk')) {
  33. def fileName = "baiduapp_v${getVersionName()}_${releaseDay()}_build${versionN}.apk"
  34. output.outputFile = new File(outputFile.parent,fileName)
  35. }
  36. }
  37. }
  38. }
  39. }
  40. productFlavors {
  41. }
  42. lintOptions{
  43. abortOnError false
  44. }
  45. sourceSets{
  46. main {
  47. jniLibs.srcDirs = ['jniLibs']
  48. }
  49. debug.setRoot('build-types/debug')
  50. release.setRoot('build-types/release')
  51. }
  52. }
  53. dependencies {
  54. compile project(':plug')
  55. compile fileTree(include: ['*.jar'], dir: 'libs')
  56. compile 'com.android.support:support-v4:23.1.1'
  57. }
  58. def releaseDay(){
  59. return new Date().format("yyyyMMdd",TimeZone.getTimeZone("UTC"))
  60. }
  61. def getTodayReleaseVersion(){
  62. def runTasks = gradle.startParameter.taskNames;
  63. def versionPropsFile = file('buildver.properties')
  64. def today = releaseDay()
  65. if(versionPropsFile.canRead()){
  66. def versionId = 1
  67. def Properties versionProps = new Properties()
  68. versionProps.load(new FileInputStream(versionPropsFile))
  69. def releaseDay = versionProps.get("RELEASE_DAY")
  70. if(releaseDay.equals(today)) {
  71. versionId = versionProps.get('VERSION_NAME').toInteger()
  72. println("-------------"+runTasks);
  73. def isRelase = false
  74. runTasks.each { task ->
  75. if(task.contains("assembleRelease")){
  76. isRelase = true
  77. }
  78. }
  79. if(isRelase){
  80. versionId++
  81. }
  82. }else{
  83. versionProps["RELEASE_DAY"] = today;
  84. }
  85. versionProps['VERSION_NAME'] = versionId.toString()
  86. versionProps.store(versionPropsFile.newWriter(),null)
  87. return versionId.toString();
  88. }else{
  89. versionPropsFile.createNewFile();
  90. def Properties versionProps = new Properties();
  91. versionProps["RELEASE_DAY"] = releaseDay;
  92. versionProps['VERSION_NAME'] = versionId.toString()
  93. versionProps.store(new FileOutputStream(versionPropsFile),null)
  94. }
  95. return "1";
  96. }
  97. def getVersionName(){
  98. def fileManifest = file("src/main/AndroidManifest.xml")
  99. def androidManifest = new XmlSlurper().parse(fileManifest)
  100. return androidManifest.@'android:versionName'
  101. }

世界未解之谜之----------Android Gradle的更多相关文章

  1. React Native Android gradle下载慢问题解决

    很多人会遇到 初次运行 react-native run android的时候 gradle下载极慢,甚至会失败的问题 如下图 实际上这个问题好解决的 首先 把对应版本的gradle下载到本地任意一个 ...

  2. 利用 Android Gradle 瘦身 apk

    http://devyang.me/blog/2014/11/11/li-yong-android-gradleshou-shen-apk/ apk瘦身一般有两条线, 去除无用的代码,例如引用一个比较 ...

  3. Android Gradle 技巧之一: Build Variant 相关

    Build Variant android gradle 插件,允许对最终的包以多个维度进行组合. BuildVariant = ProductFlavor x BuildType 两个维度 最常见的 ...

  4. The Android Gradle Plugin and Gradle version-compatibility

    http://tools.android.com/tech-docs/new-build-system/version-compatibility Version Compatibility Post ...

  5. Android Gradle实用技巧——多渠道打包

    友盟有很多不错的功能,例如渠道统计等. 想要做渠道统计,有一个要求就是要在manifest文件中添加各个渠道的配置.只有一两个渠道还好说,但是渠道多了的话,手动修改然后打包简直是噩梦. 幸好现在And ...

  6. Android Gradle Plugin指南(六)——高级构建定制

    原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Advanced-Build-Customization ...

  7. [Android]Gradle 插件 DiscardFilePlugin(class注入&清空类和方法)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6732128.html Android Gradle 插件 Di ...

  8. Android Gradle 指定 Module 打包

    Android Gradle 指定 Module 打包 项目中有许多的可以直接独立运行的 Module ,如何在 Gradle 中将签名文件配置好了,那么就不需要普通的手动点击 Generate Si ...

  9. Android Gradle manifestPlaceholders 占位符详解

    Android Gradle manifestPlaceholders 占位符详解 在实际项目中,AndroidManifest里十几个地方的值是需要动态的改变(生成apk文件的时候).如果每次去改也 ...

随机推荐

  1. django rest framework 详解

    Django REST framework 是用于构建Web API 的强大而灵活的工具包. 我们可能想使用REST框架的一些原因: Web浏览API对于开发人员来说是一个巨大的可用性. 认证策略包括 ...

  2. C#设计模式--抽象工厂模式(创建型模式)

    一.抽象工厂模式: 在工厂模式中具体的产品和具体的工厂是一一对应的,一个工厂只能生产一种产品,结构单一,例如小米公司刚开始是只生产小米手机,但是伴随着公司的发展,他们需要生产不同型号的手机,也会生产路 ...

  3. 在IE中解决当前安全设置不允许下载该文件的方案

    解决方案一: 1.0打开IE后,单击菜单栏中的“工具”菜单,在弹出的菜单中选择“Internet选项”命令: 2.0在弹出“Internet选项”的对话框中,打开“Internet选项”对话框: 3. ...

  4. FYI-django数据库操作-外键

    我先定义两个模型,一个是作者,一个是作者出版的书籍,算是一对多的类型.   class Person(models.Model); name = models.CharField('作者姓名', ma ...

  5. 使用shc加密bash脚本程序

    摘要以前写看到别人写的脚本用shc加密的,我也有就了解了下. SHC代表shell script compiler,即shell脚本编译器.通过SHC编译过的脚本程序对普通用户而言是不读的,因此如果你 ...

  6. 用keytool制作证书并在tomcat配置https服务(三)

    用keytool制作证书并在tomcat配置https服务(一) 用keytool制作证书并在tomcat配置https服务(二) 用keytool制作证书并在tomcat配置https服务(四) 模 ...

  7. kernighan lin算法

    这个算法主要用在网络节点的分割.他的思想是将一个网络节点图分割成两个相等的节点集合.为了连接两个社区的边权最小. step1:随机产生两个节点的集合A和B. step2:计算A和B中的每个节点的int ...

  8. WEB相关背景知识(新手)

    1.评估域名类型 .com——商业实体 .edu——仅限有学位或更高等学历授予资格的高等教育使用 .gov——仅限政府使用 .net——与Internrt网络支持相关的团体,通常是Internet服务 ...

  9. UISearchController(使用)

    效果图1 效果图2 其实一般是在第一种情况使用的UISearchController,但是第二种情况这种又懒得去用uisearchbar+uitableview等等去处理, 其实主要是对数据源的合理使 ...

  10. 总结ing

    1,iOS的GCD中如何关闭或者杀死一个还没执行完的后台线程? 举例来说,我通过导航进入到了一个视图,这个视图加载的时候会新建一个线程在后台运行,假设这个线程需要从网络中读取许多数据,需要一定的时间, ...