build.gradle 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. apply plugin: 'com.android.application'
  2. // NOTE!!! 重要!!! aar需要kotlin支持,不引入会导致小程序打不开.
  3. apply plugin: 'kotlin-android'
  4. apply plugin: 'kotlin-android-extensions'
  5. if (rootProject.ext.miniAppConfig.usePluginSdk && rootProject.ext.miniAppConfig.usePluginSdk.tpush && rootProject.ext.miniAppConfig.usePluginSdk.tpush != '') {
  6. apply plugin: 'com.tencent.android.tpns'
  7. }
  8. android {
  9. useLibrary 'org.apache.http.legacy'
  10. compileSdkVersion rootProject.ext.compileSdkVersion
  11. buildToolsVersion rootProject.ext.buildToolsVersion
  12. def miniAppConfig = rootProject.ext.miniAppConfig
  13. defaultConfig {
  14. buildConfigField "String", "SDK_KEY", "\"$miniAppConfig.sdkKey\""
  15. buildConfigField "String", "SDK_KEY_SECRET", "\"$miniAppConfig.sdkKeySecret\""
  16. buildConfigField "Boolean", "SPLASHSCREEN", "$miniAppConfig.splashscreen"
  17. buildConfigField "String", "ENABLE_VCONSOLE", "\"$miniAppConfig.enableVConsole\""
  18. buildConfigField "Boolean", "PRIVACY_POPUP", "$miniAppConfig.privacyPopup"
  19. buildConfigField "Boolean", "APP_MENU_ENABLE", "$miniAppConfig.appMenuEnable"
  20. buildConfigField "String", "SCHEME", "\"$miniAppConfig.scheme\""
  21. manifestPlaceholders = [
  22. MINIAPP_SCHEME: miniAppConfig.scheme,
  23. ]
  24. }
  25. signingConfigs {
  26. debug {
  27. keyAlias 'androiddebugkey'
  28. keyPassword 'android'
  29. storeFile rootProject.file('compile/debug.keystore')
  30. storePassword 'android'
  31. }
  32. // 使用该 test.jks 生成的 应用签名 md5 为 d8d9a7134de382c19ff2a42a287ec627
  33. release {
  34. keyAlias 'test'
  35. keyPassword '12345678'
  36. storeFile file('./sign/test2.jks')
  37. storePassword '12345678'
  38. }
  39. }
  40. defaultConfig {
  41. multiDexEnabled true
  42. versionName miniAppConfig.version
  43. versionCode miniAppConfig.versionCode
  44. minSdkVersion rootProject.ext.minSdkVersion
  45. targetSdkVersion rootProject.ext.targetSdkVersion
  46. if (rootProject.ext.miniAppConfig.map && rootProject.ext.miniAppConfig.map.qmapAPIKey) {
  47. manifestPlaceholders["qmapAPIKey"] = rootProject.ext.miniAppConfig.map.qmapAPIKey
  48. }
  49. }
  50. buildTypes {
  51. debug {
  52. debuggable true
  53. signingConfig signingConfigs.debug
  54. minifyEnabled false
  55. shrinkResources false
  56. }
  57. release {
  58. debuggable false
  59. signingConfig signingConfigs.release
  60. minifyEnabled true
  61. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  62. }
  63. }
  64. packagingOptions {
  65. exclude 'META-INF/DEPENDENCIES'
  66. exclude 'META-INF/NOTICE'
  67. exclude 'META-INF/LICENSE'
  68. exclude 'META-INF/LICENSE.txt'
  69. exclude 'META-INF/NOTICE.txt'
  70. }
  71. flavorDimensions 'abi'
  72. productFlavors {
  73. arm {
  74. dimension 'abi'
  75. ndk {
  76. abiFilters "arm64-v8a", "armeabi-v7a"
  77. }
  78. }
  79. arm32 {
  80. dimension 'abi'
  81. ndk {
  82. abiFilter "armeabi-v7a"
  83. }
  84. }
  85. arm64 {
  86. dimension 'abi'
  87. ndk {
  88. abiFilter "arm64-v8a"
  89. }
  90. }
  91. }
  92. lintOptions {
  93. checkReleaseBuilds false
  94. abortOnError false
  95. }
  96. compileOptions {
  97. sourceCompatibility = 1.8
  98. targetCompatibility = 1.8
  99. }
  100. repositories {
  101. flatDir {
  102. dirs 'libs'
  103. }
  104. }
  105. sourceSets {
  106. main {
  107. jniLibs.srcDirs = ["libs"]
  108. }
  109. }
  110. }
  111. // def wxa_sdk_version = rootProject.ext.miniAppConfig.sdkVersion
  112. def wxa_sdk_version = rootProject.ext.saaaSDKVersionDepend
  113. def libsDir = file("./libs")
  114. if (!file("$libsDir/com/tencent/luggage/wxa-standalone-open-runtime-SaaA-plugin-sdk/${wxa_sdk_version}").exists()) {
  115. libsDir.mkdir()
  116. apply plugin: 'de.undercouch.download'
  117. def zipFileName = "wxa-standalone-open-runtime-SaaA-sdk-all-${wxa_sdk_version}.zip"
  118. download.run {
  119. src "https://dldir1.qq.com/WechatWebDev/donut/android/pluginsdk/${zipFileName}"
  120. dest libsDir
  121. }
  122. def zipFilePath = "$libsDir/$zipFileName"
  123. copy {
  124. def subDir = 'localAar'
  125. from {
  126. zipTree(zipFilePath).matching { include "$subDir/**" }
  127. }
  128. into libsDir
  129. eachFile { fcp ->
  130. fcp.path = fcp.path.replaceFirst("^$subDir", '')
  131. }
  132. includeEmptyDirs false
  133. }
  134. file(zipFilePath).delete()
  135. }
  136. dependencies {
  137. // implementation project(path: ':plugin')
  138. def miniAppConfig = rootProject.ext.miniAppConfig
  139. implementation("com.tencent.luggage:wxa-standalone-open-runtime-SaaA-plugin-sdk:${wxa_sdk_version}")
  140. //以下是测试通过微信打包出来的aar能否正常使用
  141. implementation(name: 'wxf1a06dafa3350688-1.0.47', ext: 'aar')
  142. implementation('io.github.jeremyliao:live-event-bus-x:1.8.0')
  143. implementation('io.github.FailedToRead:intermodal-release:1.0.1')
  144. implementation('io.github.FailedToRead:oaid_sdk_1.0.25:1.0.1')
  145. }