build.gradle 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. apply plugin: 'com.android.application'
  2. apply plugin: 'com.getkeepsafe.dexcount'
  3. //apply plugin: 'me.tatarka.retrolambda'
  4. //定义时间
  5. def releaseTime() {
  6. // return new Date().format("yyyyMMdd.HHmm.ss")
  7. return new Date().format("yyyyMMdd")
  8. }
  9. //设置发布的显示的版本号
  10. def getVersionName() {
  11. return rootProject.ext.android.versionName
  12. }
  13. //读取版本号
  14. def getVersionCode() {
  15. def versionFile = file('version.properties')
  16. if (versionFile.canRead()) {
  17. Properties versionProps = new Properties()
  18. versionProps.load(new FileInputStream(versionFile))
  19. def versionName = versionProps['versionName'].toInteger()
  20. def versionCode = versionProps['versionCode'].toInteger()
  21. def debugName = versionProps['debugName'].toInteger()
  22. def debugCode = versionProps['debugCode'].toInteger()
  23. def versionArray = new Integer[4]
  24. def runTasks = gradle.startParameter.taskNames //仅在assembleRelease任务是增加版本号
  25. println 'runTasks:' + runTasks
  26. if (':WeiChat:assembleBaiduDebug' in runTasks) {
  27. println 'runTasks:' + 'debug模式打包apk'
  28. versionProps['debugCode'] = (++debugCode).toString()
  29. versionProps['debugName'] = (++debugName).toString()
  30. versionProps.store(versionFile.newWriter(), null)
  31. }
  32. if (':WeiChat:assembleBaiduRelease' in runTasks) {
  33. println 'runTasks:' + '发布模式打包apk'
  34. versionProps['versionCode'] = (++versionCode).toString()
  35. versionProps['versionName'] = (++versionName).toString()
  36. versionProps.store(versionFile.newWriter(), null)
  37. }
  38. versionArray[0] = versionName
  39. versionArray[1] = versionCode
  40. versionArray[2] = debugName
  41. versionArray[3] = debugCode
  42. println versionArray[0].toString()
  43. return versionArray
  44. } else {
  45. throw new GradleException("Could not find version.properties!")
  46. }
  47. }
  48. android {
  49. def versionArray = getVersionCode()
  50. //====================Add below two line=============
  51. dexOptions {
  52. // incremental true
  53. javaMaxHeapSize "4g" //specify the heap size for the dex process
  54. preDexLibraries = false //delete the already predexed libraries
  55. //是否支持大工程模式
  56. jumboMode = true
  57. }
  58. compileOptions {
  59. sourceCompatibility JavaVersion.VERSION_1_8
  60. targetCompatibility JavaVersion.VERSION_1_8
  61. }
  62. signingConfigs {
  63. config {
  64. storeFile file('C:/sigin/applicationsignname[20150409]')
  65. storePassword '13237658359'
  66. keyAlias 'jie-20150409'
  67. keyPassword '13237658359'
  68. }
  69. }
  70. compileSdkVersion rootProject.ext.android.compileSdkVersion
  71. buildToolsVersion rootProject.ext.android.buildToolsVersion
  72. defaultConfig {
  73. def versionNames = "v" + versionArray[0].toString().substring(0, 1) + "." + versionArray[0].toString().substring(1, 2) + "." + versionArray[0].toString().substring(2, 3)
  74. applicationId project.applicationId
  75. minSdkVersion rootProject.ext.android.minSdkVersion
  76. targetSdkVersion rootProject.ext.android.targetSdkVersion
  77. // versionCode rootProject.ext.android.versionCode
  78. // versionName rootProject.ext.android.versionName
  79. versionCode versionArray[1]
  80. versionName versionNames
  81. multiDexEnabled true
  82. // signingConfig signingConfigs.config
  83. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
  84. ndk {
  85. abiFilters "armeabi", "armeabi-v7a", "x86", "mips", "x86_64", "mips64"
  86. }
  87. renderscriptTargetApi rootProject.ext.android.compileSdkVersion
  88. renderscriptSupportModeEnabled true
  89. }
  90. useLibrary 'org.apache.http.legacy'
  91. lintOptions {
  92. checkReleaseBuilds false
  93. abortOnError false
  94. }
  95. sourceSets {
  96. main {
  97. jniLibs.srcDirs = ['src/main/jniLibs']
  98. }
  99. }
  100. packagingOptions {
  101. exclude 'META-INF/LICENSE.txt'
  102. exclude 'META-INF/NOTICE.txt'
  103. }
  104. buildTypes {
  105. release {
  106. minifyEnabled false
  107. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  108. signingConfig signingConfigs.config
  109. }
  110. debug {
  111. //signingConfig signingConfigs.config
  112. }
  113. }
  114. flavorDimensions "usoft"
  115. /*productFlavors {
  116. wandoujia {
  117. dimension "usoft"
  118. }
  119. _360 {
  120. dimension "usoft"
  121. }
  122. baidu {
  123. dimension "usoft"
  124. }
  125. xiaomi {
  126. dimension "usoft"
  127. }
  128. tencent {
  129. dimension "usoft"
  130. }
  131. taobao {
  132. dimension "usoft"
  133. }
  134. }*/
  135. productFlavors.all {
  136. flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
  137. }
  138. /*applicationVariants.all { variant ->
  139. variant.outputs.each { output ->
  140. def outputFile = output.outputFile
  141. def fileName
  142. if (outputFile != null && outputFile.name.endsWith('.apk')) {
  143. if (variant.buildType.name.equals('release')) {
  144. //赋值app属性版本名
  145. //variant.mergedFlavor.versionName = getVersionName() + "_" + variant.productFlavors[0].name+"(Build"+currentVersionCode+")"
  146. //variant.mergedFlavor.versionName ="v"+versionArray[0].toString().substring(0,1)+"."+ versionArray[0].toString().substring(1,2)+"."+ versionArray[0].toString().substring(2,3)
  147. def releaseInfo = "v" + versionArray[0].toString().substring(0, 1) + "." + versionArray[0].toString().substring(1, 2) + "." + versionArray[0].toString().substring(2, 3) + "_" + variant.productFlavors[0].name + "(Build" + versionArray[1] + ")"
  148. fileName = "WeiChat_${releaseInfo}_release.apk"
  149. } else if (variant.buildType.name.equals('debug')) {
  150. //赋值app属性版本名
  151. variant.mergedFlavor.versionName = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "(Build" + versionArray[3] + ")" + "_debug"
  152. def debugInfo = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "(Build" + versionArray[3] + ")"
  153. fileName = "WeiChat_${debugInfo}_debug.apk"
  154. }
  155. output.outputFile = new File(outputFile.parent, fileName)
  156. }
  157. }
  158. }*/
  159. }
  160. repositories {
  161. flatDir {
  162. dirs 'libs'
  163. }
  164. }
  165. dependencies {
  166. api fileTree(include: ['*.jar'], dir: 'libs')
  167. testImplementation deps.junit
  168. implementation deps.appcompatV7
  169. implementation deps.design
  170. implementation(deps.stetho) {
  171. force = true
  172. }
  173. implementation deps.jodatime
  174. implementation deps.systembartint
  175. implementation deps.photoView
  176. implementation deps.tagGroup
  177. // implementation deps.analytics
  178. implementation deps.activityOnCrash
  179. implementation deps.stickyListHeaders
  180. implementation deps.stickyGridHeaders
  181. implementation deps.materialDialogs
  182. implementation deps.okhttp
  183. api project(':common')
  184. api project(':appmessages')
  185. api project(':network')
  186. api project(':imageload')
  187. api project(':applogin')
  188. api project(':apptasks')
  189. api project(':appcontact')
  190. api project(':appme')
  191. api project(':appworks')
  192. api project(':appbooking')
  193. api project(':appmusic')
  194. api project(':apputils')
  195. implementation 'com.android.support.constraint:constraint-layout:1.0.2'
  196. implementation 'com.android.support:support-v4:28.0.0'
  197. implementation(name: 'autoupdatesdk-release', ext: 'aar')
  198. }
  199. buildscript {
  200. repositories {
  201. mavenCentral()
  202. }
  203. dependencies {
  204. classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.4'
  205. }
  206. }
  207. dexcount {
  208. format = "json"
  209. includeClasses = false
  210. includeFieldCount = true
  211. includeTotalMethodCount = false
  212. orderByMethodCount = false
  213. verbose = false
  214. maxTreeDepth = Integer.MAX_VALUE
  215. teamCityIntegration = false
  216. enableForInstantRun = false
  217. }