build.gradle 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. plugins {
  2. alias(libs.plugins.android.application)
  3. alias(libs.plugins.jetbrains.kotlin.android)
  4. id("org.jetbrains.kotlin.kapt")
  5. id("com.google.devtools.ksp")
  6. }
  7. android {
  8. namespace 'com.grkj.iscs_mars'
  9. compileSdk 34
  10. viewBinding.enabled = true
  11. dataBinding {
  12. enabled true
  13. }
  14. defaultConfig {
  15. applicationId "com.grkj.iscs_mars"
  16. minSdk 24
  17. targetSdk 34
  18. versionCode 1
  19. versionName "1.0.1"
  20. multiDexEnabled true
  21. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  22. }
  23. //签名配置signingConfigs一定要在buildTypes前
  24. signingConfigs {
  25. release {
  26. storeFile file('../ISCS.jks')
  27. storePassword "iscs123456"
  28. keyAlias "iscs"
  29. keyPassword "iscs123456"
  30. }
  31. }
  32. buildTypes {
  33. debug {
  34. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  35. signingConfig signingConfigs.release
  36. }
  37. release {
  38. minifyEnabled false // 混淆
  39. zipAlignEnabled false // 进行压缩优化
  40. shrinkResources false // 移除无用的resource文件
  41. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  42. signingConfig signingConfigs.release
  43. }
  44. }
  45. android.applicationVariants.all { variant ->
  46. variant.outputs.all { output ->
  47. def buildType = variant.buildType.name
  48. // 获取当前 output 的 ABI;没有则视为 "universal"
  49. def abi = null
  50. try {
  51. abi = output.getFilter(com.android.build.OutputFile.ABI)
  52. } catch (Throwable ignore) {
  53. def f = output.filters?.find { it.filterType?.toString()?.toLowerCase() == 'abi' }
  54. abi = f?.identifier
  55. }
  56. if (abi == null || abi.trim().isEmpty()) {
  57. abi = "universal"
  58. }
  59. outputFileName = "ISCS_${buildType.capitalize()}_${abi}_v${variant.versionName}_${variant.versionCode}.apk"
  60. }
  61. }
  62. compileOptions {
  63. sourceCompatibility JavaVersion.VERSION_1_8
  64. targetCompatibility JavaVersion.VERSION_1_8
  65. }
  66. kotlinOptions {
  67. jvmTarget = '1.8'
  68. }
  69. splits {
  70. abi {
  71. enable true // 开启 ABI 分 APK
  72. reset() // 先清空默认 ABI
  73. include 'armeabi-v7a', 'arm64-v8a' // 需要哪些就写哪些;如需 x86/x86_64 也可以加上
  74. universalApk true // 同时产一个“全 ABI”的通用 APK(可选)
  75. }
  76. }
  77. packaging {
  78. resources {
  79. pickFirsts += "META-INF/versions/9/OSGI-INF/MANIFEST.MF"
  80. pickFirsts += "META-INF/INDEX.LIST"
  81. pickFirsts += "META-INF/io.netty.versions.properties"
  82. }
  83. }
  84. }
  85. dependencies {
  86. implementation libs.androidx.core.ktx
  87. implementation libs.androidx.appcompat
  88. implementation libs.material
  89. implementation libs.androidx.activity
  90. implementation libs.androidx.constraintlayout
  91. testImplementation libs.junit
  92. androidTestImplementation libs.androidx.junit
  93. androidTestImplementation libs.androidx.espresso.core
  94. // implementation libs.mvvmhabit
  95. implementation libs.okhttps
  96. implementation libs.okhttps.stomp
  97. implementation libs.log.interceptor
  98. implementation libs.autosize
  99. implementation libs.fastble
  100. implementation(libs.viewmodel.ktx)
  101. implementation(libs.viewmodel.livedata.ktx)
  102. implementation(libs.viewmodel.savestate)
  103. kapt(libs.viewmodel.compiler)
  104. implementation(libs.android.navigation.fragment)
  105. implementation(libs.android.navigation.ui)
  106. implementation(libs.android.navigation.dynamic.features.fragment)
  107. implementation(libs.kotlinx.serialization.json)
  108. implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
  109. // RV通用Adapter https://github.com/hongyangAndroid/base-adapter
  110. implementation 'com.zhy:base-rvadapter:3.0.3'
  111. // 日志工具 https://github.com/orhanobut/logger
  112. implementation 'com.orhanobut:logger:2.2.0'
  113. implementation 'androidx.multidex:multidex:2.0.1'
  114. // https://github.com/googlesamples/easypermissions
  115. implementation 'pub.devrel:easypermissions:3.0.0'
  116. // https://github.com/scwang90/SmartRefreshLayout
  117. implementation 'androidx.appcompat:appcompat:1.7.0' //必须 1.0.0 以上
  118. implementation 'io.github.scwang90:refresh-layout-kernel:2.1.0' //核心必须依赖
  119. implementation 'io.github.scwang90:refresh-header-classics:2.1.0' //经典刷新头
  120. implementation 'androidx.recyclerview:recyclerview:1.3.0'
  121. implementation 'com.leon:lfilepickerlibrary:1.8.0'
  122. implementation 'com.github.jzmanu:MDatePickerSample:v1.0.5'
  123. implementation 'com.wang.avi:library:2.1.3'
  124. implementation 'androidx.viewpager2:viewpager2:1.0.0'
  125. implementation 'com.github.bumptech.glide:glide:4.11.0'
  126. // https://github.com/onlylemi/MapView
  127. // implementation 'com.github.onlylemi:mapview:v1.0'
  128. // CameraX 核心库
  129. implementation "androidx.camera:camera-core:1.2.0"
  130. implementation "androidx.camera:camera-camera2:1.2.0"
  131. implementation "androidx.camera:camera-lifecycle:1.2.0"
  132. implementation "androidx.camera:camera-view:1.2.0"
  133. // ML Kit 面部检测库(备份,已改用虹软以补充活体检测)
  134. implementation 'com.google.mlkit:face-detection:16.1.5'
  135. implementation 'io.github.razerdp:BasePopup:3.2.1'
  136. implementation 'com.github.SilverIceKey:SIKExtension:1.1.76'
  137. implementation 'com.github.liangjingkanji:BRV:1.6.1'
  138. implementation("com.github.SilverIceKey:SIKCronJob:1.0.5")
  139. }