build.gradle 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  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. lintOptions {
  110. checkReleaseBuilds false
  111. abortOnError false
  112. }
  113. }
  114. debug {
  115. //signingConfig signingConfigs.config
  116. }
  117. }
  118. flavorDimensions "usoft"
  119. /*productFlavors {
  120. wandoujia {
  121. dimension "usoft"
  122. }
  123. _360 {
  124. dimension "usoft"
  125. }
  126. baidu {
  127. dimension "usoft"
  128. }
  129. xiaomi {
  130. dimension "usoft"
  131. }
  132. tencent {
  133. dimension "usoft"
  134. }
  135. taobao {
  136. dimension "usoft"
  137. }
  138. }*/
  139. productFlavors.all {
  140. flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
  141. }
  142. configurations {
  143. all*.exclude group: 'com.android.volley'
  144. }
  145. /*applicationVariants.all { variant ->
  146. variant.outputs.each { output ->
  147. def outputFile = output.outputFile
  148. def fileName
  149. if (outputFile != null && outputFile.name.endsWith('.apk')) {
  150. if (variant.buildType.name.equals('release')) {
  151. //赋值app属性版本名
  152. //variant.mergedFlavor.versionName = getVersionName() + "_" + variant.productFlavors[0].name+"(Build"+currentVersionCode+")"
  153. //variant.mergedFlavor.versionName ="v"+versionArray[0].toString().substring(0,1)+"."+ versionArray[0].toString().substring(1,2)+"."+ versionArray[0].toString().substring(2,3)
  154. 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] + ")"
  155. fileName = "WeiChat_${releaseInfo}_release.apk"
  156. } else if (variant.buildType.name.equals('debug')) {
  157. //赋值app属性版本名
  158. variant.mergedFlavor.versionName = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "(Build" + versionArray[3] + ")" + "_debug"
  159. def debugInfo = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "(Build" + versionArray[3] + ")"
  160. fileName = "WeiChat_${debugInfo}_debug.apk"
  161. }
  162. output.outputFile = new File(outputFile.parent, fileName)
  163. }
  164. }
  165. }*/
  166. }
  167. repositories {
  168. flatDir {
  169. dirs 'libs'
  170. }
  171. }
  172. dependencies {
  173. api fileTree(include: ['*.jar'], dir: 'libs')
  174. testImplementation deps.junit
  175. implementation deps.appcompatV7
  176. implementation deps.supportV4
  177. implementation deps.design
  178. implementation(deps.stetho) {
  179. force = true
  180. }
  181. implementation deps.jodatime
  182. implementation deps.systembartint
  183. implementation deps.photoView
  184. implementation deps.tagGroup
  185. // implementation deps.analytics
  186. implementation deps.activityOnCrash
  187. implementation deps.stickyListHeaders
  188. implementation deps.stickyGridHeaders
  189. implementation deps.materialDialogs
  190. implementation deps.okhttp
  191. api project(':common')
  192. api project(':appmessages')
  193. api project(':network')
  194. api project(':imageload')
  195. api project(':applogin')
  196. api project(':apptasks')
  197. api project(':appcontact')
  198. api project(':appme')
  199. api project(':appworks')
  200. api project(':appbooking')
  201. api project(':appmusic')
  202. api project(':apputils')
  203. implementation 'com.android.support.constraint:constraint-layout:1.0.2'
  204. // implementation 'com.android.support:support-v4:28.0.0'
  205. implementation(name: 'autoupdatesdk-release', ext: 'aar')
  206. }
  207. buildscript {
  208. repositories {
  209. mavenCentral()
  210. }
  211. dependencies {
  212. classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.4'
  213. }
  214. }
  215. dexcount {
  216. format = "json"
  217. includeClasses = false
  218. includeFieldCount = true
  219. includeTotalMethodCount = false
  220. orderByMethodCount = false
  221. verbose = false
  222. maxTreeDepth = Integer.MAX_VALUE
  223. teamCityIntegration = false
  224. enableForInstantRun = false
  225. }