build.gradle 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. apply plugin: 'com.android.application'
  2. apply plugin: 'kotlin-android'
  3. apply plugin: 'kotlin-android-extensions'
  4. apply plugin: 'kotlin-kapt'
  5. apply plugin: "androidx.navigation.safeargs.kotlin"
  6. android {
  7. compileSdkVersion 29
  8. buildToolsVersion "29.0.3"
  9. def currentVersionCode = getVersionCode()
  10. defaultConfig {
  11. applicationId "com.bearya.kids"
  12. minSdkVersion 21
  13. targetSdkVersion 29
  14. versionCode currentVersionCode
  15. multiDexEnabled true
  16. vectorDrawables.useSupportLibrary true
  17. javaCompileOptions {
  18. annotationProcessorOptions {
  19. arguments = ["room.schemaLocation" : "$projectDir/schemas".toString(),
  20. "room.expandProjection": "true"]
  21. }
  22. }
  23. buildFeatures {
  24. dataBinding true
  25. }
  26. flavorDimensions "1.2.1"
  27. }
  28. aaptOptions {
  29. noCompress "webp" //表示不让aapt压缩的文件后缀
  30. }
  31. sourceSets {
  32. main {
  33. java {
  34. srcDirs = ['src/main/java']
  35. }
  36. res {
  37. srcDirs = ['src/main/res']
  38. }
  39. }
  40. kids {
  41. assets {
  42. srcDirs = ['src/kids/assets']
  43. }
  44. }
  45. child {
  46. assets {
  47. srcDirs = ['src/child/assets']
  48. }
  49. }
  50. }
  51. productFlavors {
  52. kids {
  53. versionName "1.2.2"
  54. dimension "1.2.1"
  55. }
  56. child {
  57. versionName "1.2.2"
  58. dimension "1.2.1"
  59. }
  60. }
  61. signingConfigs {
  62. config {
  63. keyAlias 'BeiYa'
  64. storePassword 'BeiYa123'
  65. storeFile file('../bearya_keystore.jks')
  66. keyPassword 'BeiYa!@#'
  67. }
  68. }
  69. buildTypes {
  70. debug {
  71. debuggable true
  72. minifyEnabled false
  73. buildConfigField "String", "BuglyAppKey", BUGLY_APP_KEY
  74. signingConfig signingConfigs.config
  75. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  76. }
  77. release {
  78. debuggable false
  79. minifyEnabled false
  80. buildConfigField "String", "BuglyAppKey", BUGLY_APP_KEY
  81. signingConfig signingConfigs.config
  82. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  83. }
  84. }
  85. android.applicationVariants.all { variant ->
  86. variant.outputs.each { output ->
  87. if ("release" == buildType.name)
  88. output.outputFileName =
  89. "${variant.productFlavors[0].name}_${defaultConfig.versionCode}_v${variant.productFlavors[0].versionName}_release.apk"
  90. else
  91. output.outputFileName =
  92. "${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk"
  93. }
  94. }
  95. compileOptions {
  96. sourceCompatibility JavaVersion.VERSION_1_8
  97. targetCompatibility JavaVersion.VERSION_1_8
  98. }
  99. kotlinOptions {
  100. jvmTarget = 1.8
  101. }
  102. }
  103. // 获取版本号
  104. def getVersionCode() {
  105. def versionFile = file('version.properties')// 读取第一步新建的文件
  106. if (versionFile.canRead()) {// 判断文件读取异常
  107. Properties versionProps = new Properties()
  108. versionProps.load(new FileInputStream(versionFile))
  109. def versionCode = versionProps['VERSION_CODE'].toInteger()// 读取文件里面的版本号
  110. versionProps['VERSION_CODE'] = (++versionCode).toString()
  111. versionProps.store(versionFile.newWriter(), null)
  112. return versionCode // 返回自增之后的版本号
  113. } else {
  114. throw new Exception("Could not find version.properties!")
  115. }
  116. }
  117. dependencies {
  118. implementation fileTree(dir: 'libs', include: ['*.jar'])
  119. implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  120. implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9'
  121. implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
  122. implementation 'androidx.appcompat:appcompat:1.2.0'
  123. implementation 'androidx.core:core-ktx:1.3.1'
  124. implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
  125. implementation 'androidx.viewpager2:viewpager2:1.0.0'
  126. implementation 'androidx.paging:paging-runtime:2.1.2'
  127. implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
  128. implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0'
  129. implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
  130. implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
  131. implementation 'androidx.lifecycle:lifecycle-reactivestreams:2.2.0'
  132. implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0'
  133. implementation 'androidx.navigation:navigation-ui-ktx:2.3.0'
  134. implementation 'androidx.room:room-runtime:2.2.5'
  135. implementation 'androidx.room:room-ktx:2.2.5'
  136. implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
  137. implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
  138. implementation 'androidx.cardview:cardview:1.0.0'
  139. implementation 'androidx.recyclerview:recyclerview:1.1.0'
  140. implementation 'androidx.multidex:multidex:2.0.1'
  141. implementation 'com.google.code.gson:gson:2.8.6'
  142. implementation 'com.tencent.bugly:crashreport:3.1.9'
  143. implementation 'com.github.bumptech.glide:glide:4.11.0'
  144. implementation 'com.github.SheHuan:NiceImageView:1.0.5'
  145. implementation 'jp.wasabeef:glide-transformations:4.0.1'
  146. implementation 'com.orhanobut:logger:2.2.0'
  147. implementation 'com.kaopiz:kprogresshud:1.2.0'
  148. kapt 'com.github.bumptech.glide:compiler:4.11.0'
  149. kapt 'androidx.annotation:annotation:1.1.0'
  150. kapt 'androidx.room:room-compiler:2.2.5'
  151. }