Advertisement
Guest User

Untitled

a guest
Aug 26th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.75 KB | None | 0 0
  1. 1. 项目根目录下 build.gradle 配置
  2.  
  3. buildscript {
  4. repositories {
  5. jcenter()
  6. }
  7.  
  8. dependencies {
  9. classpath 'com.android.tools.build:gradle:1.3.0'
  10. classpath 'com.tencent.bugly:symtabfileuploader:latest.release'
  11. }
  12.  
  13. //当升级sdk、build tool、target sdk等,几个module都要更改,先在project的根目录下的build.gradle定义ext全局变量,然后每次修改project级别的build.gradle即可实现全局统一配置。
  14. ext {
  15. compileSdkVersion = 21
  16. buildToolsVersion = "23.0.2"
  17. minSdkVersion = 11
  18. targetSdkVersion = 21
  19. versionCode = 5610000
  20. versionName = "5.6.1"
  21. }
  22. }
  23.  
  24. allprojects {
  25. repositories {
  26. jcenter()
  27. }
  28. }
  29.  
  30. task clean(type: Delete) {
  31. delete rootProject.buildDir
  32. }
  33.  
  34.  
  35.  
  36. 2. 主module build.gradle 配置
  37.  
  38. apply plugin: 'com.android.application'
  39.  
  40. def releaseTime() {
  41. return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
  42. }
  43.  
  44. android {
  45. compileSdkVersion rootProject.ext.compileSdkVersion
  46. buildToolsVersion rootProject.ext.buildToolsVersion
  47.  
  48. compileOptions {
  49. sourceCompatibility JavaVersion.VERSION_1_7
  50. targetCompatibility JavaVersion.VERSION_1_7
  51. }
  52.  
  53.  
  54. signingConfigs {
  55. padSigning {
  56. storeFile file('../build_tools/keystore/Pad/sohu_video_pad_keystore')
  57. storePassword "sohuvideopad"
  58. keyAlias "sohu_video_pad_keystore"
  59. keyPassword "sohuvideopad"
  60. }
  61. }
  62.  
  63. defaultConfig {
  64. applicationId "com.sohu.tv"
  65. minSdkVersion rootProject.ext.minSdkVersion
  66. targetSdkVersion rootProject.ext.targetSdkVersion
  67. versionCode = rootProject.ext.versionCode
  68. versionName = rootProject.ext.versionName
  69. multiDexEnabled true
  70. signingConfig signingConfigs.padSigning
  71. ndk {
  72. // 设置支持的SO库架构
  73. abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
  74. }
  75. }
  76.  
  77. buildTypes {
  78. release {
  79. buildConfigField("boolean","SHOW_LOG","false")
  80. signingConfig signingConfigs.padSigning
  81. shrinkResources true
  82. minifyEnabled true
  83. proguardFiles getDefaultProguardFile('proguard-android.txt'), '../build_tools/jenkins/proguard.cfg'
  84. zipAlignEnabled true
  85. debuggable false
  86. }
  87.  
  88. debug {
  89. buildConfigField("boolean","SHOW_LOG","true")
  90. signingConfig signingConfigs.padSigning
  91. debuggable true
  92. minifyEnabled true
  93. proguardFiles getDefaultProguardFile('proguard-android.txt'), '../build_tools/jenkins/proguard.cfg'
  94. }
  95. }
  96.  
  97. dexOptions {
  98. incremental true
  99. }
  100.  
  101. // 移除lint检查的error
  102. lintOptions {
  103. checkReleaseBuilds false
  104. abortOnError false
  105. }
  106.  
  107. dexOptions {
  108. incremental true
  109. }
  110.  
  111. packagingOptions {
  112. exclude 'LICENSE.txt'
  113. exclude 'META-INF/DEPENDENCIES'
  114. exclude 'META-INF/dependencies'
  115. exclude 'META-INF/DEPENDENCIES.txt'
  116. exclude 'META-INF/dependencies.txt'
  117. exclude 'META-INF/LGPL2.1'
  118. exclude 'META-INF/LICENSE'
  119. exclude 'META-INF/license'
  120. exclude 'META-INF/LICENSE.txt'
  121. exclude 'META-INF/license.txt'
  122. exclude 'META-INF/NOTICE'
  123. exclude 'META-INF/notice'
  124. exclude 'META-INF/NOTICE.txt'
  125. exclude 'META-INF/notice.txt'
  126. exclude 'META-INF/README.txt'
  127. exclude 'META-INF/services/javax.annotation.processing.Processor'
  128. exclude '!META-INF/MANIFEST.MF'
  129. exclude 'META-INF/MANIFEST.MF'
  130. }
  131.  
  132. // 只是放置一个armabi版本
  133. splits {
  134. abi {
  135. enable true
  136. reset()
  137. include 'armeabi'
  138. universalApk false
  139. }
  140. }
  141.  
  142. }
  143.  
  144. repositories {
  145. flatDir {
  146. dirs 'libs'
  147. }
  148. }
  149.  
  150. dependencies {
  151. compile fileTree(dir: 'libs', include: '*.jar')
  152. compile project(':Commonlibrary')
  153. compile 'com.jakewharton:butterknife:7.0.1'
  154. }
  155.  
  156.  
  157. 3. library module build.gradle 配置 主要都同上,特殊如下:
  158.  
  159. apply plugin: 'com.android.library'
  160. android{
  161.  
  162. buildTypes {
  163. release {
  164. minifyEnabled true // 这个一定要为true
  165. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  166. }
  167. }
  168.  
  169. // 项目根目录执行 ./gradlew makeReleaseJar , 生成aar文件在build/outputs/aar
  170. task makeReleaseJar(type: Jar, dependsOn: 'assembleRelease') {
  171. delete 'build/libs/VolleyNetLibrary.jar' // VolleyNetLibrary 为library module 名字
  172. from fileTree(dir: 'build/intermediates/classes/release') //指定具体classes位置
  173. into('build/libs/') // 生成jar放到此module文件目录
  174. }
  175.  
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement