build.gradle 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. import java.text.DateFormat
  2. import java.text.SimpleDateFormat
  3. plugins {
  4. alias(libs.plugins.android.application)
  5. alias(libs.plugins.kotlin.android)
  6. alias(libs.plugins.kotlin.compose)
  7. }
  8. android {
  9. namespace 'com.paul.drone'
  10. compileSdk 35
  11. defaultConfig {
  12. applicationId "com.paul.drone"
  13. minSdk 24
  14. targetSdk 35
  15. versionCode 1
  16. versionName "1.0"
  17. manifestPlaceholders["API_KEY"] = project.AIRCRAFT_API_KEY
  18. manifestPlaceholders["GMAP_API_KEY"] = project.GMAP_API_KEY
  19. manifestPlaceholders["AMAP_API_KEY"] = project.AMAP_API_KEY
  20. manifestPlaceholders["MAPLIBRE_TOKEN"] = project.MAPLIBRE_TOKEN
  21. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  22. ndk {
  23. abiFilters 'arm64-v8a' // 当前 MSDK 只支持 arm64-v8a 架构
  24. }
  25. // MSDK 相关的 so 库,加上一下配置
  26. packagingOptions {
  27. pickFirst 'lib/arm64-v8a/libc++_shared.so'
  28. pickFirst 'lib/armeabi-v7a/libc++_shared.so'
  29. }
  30. // MSDK 相关的 so 库,加上一下配置
  31. packagingOptions {
  32. jniLibs {
  33. useLegacyPackaging = true
  34. }
  35. doNotStrip "*/*/libconstants.so"
  36. doNotStrip "*/*/libdji_innertools.so"
  37. doNotStrip "*/*/libdjibase.so"
  38. doNotStrip "*/*/libDJICSDKCommon.so"
  39. doNotStrip "*/*/libDJIFlySafeCore-CSDK.so"
  40. doNotStrip "*/*/libdjifs_jni-CSDK.so"
  41. doNotStrip "*/*/libDJIRegister.so"
  42. doNotStrip "*/*/libdjisdk_jni.so"
  43. doNotStrip "*/*/libDJIUpgradeCore.so"
  44. doNotStrip "*/*/libDJIUpgradeJNI.so"
  45. doNotStrip "*/*/libDJIWaypointV2Core-CSDK.so"
  46. doNotStrip "*/*/libdjiwpv2-CSDK.so"
  47. doNotStrip "*/*/libFlightRecordEngine.so"
  48. doNotStrip "*/*/libvideo-framing.so"
  49. doNotStrip "*/*/libwaes.so"
  50. doNotStrip "*/*/libagora-rtsa-sdk.so"
  51. doNotStrip "*/*/libc++.so"
  52. doNotStrip "*/*/libc++_shared.so"
  53. doNotStrip "*/*/libmrtc_28181.so"
  54. doNotStrip "*/*/libmrtc_agora.so"
  55. doNotStrip "*/*/libmrtc_core.so"
  56. doNotStrip "*/*/libmrtc_core_jni.so"
  57. doNotStrip "*/*/libmrtc_data.so"
  58. doNotStrip "*/*/libmrtc_log.so"
  59. doNotStrip "*/*/libmrtc_onvif.so"
  60. doNotStrip "*/*/libmrtc_rtmp.so"
  61. doNotStrip "*/*/libmrtc_rtsp.so"
  62. }
  63. buildFeatures {
  64. compose true
  65. }
  66. }
  67. buildTypes {
  68. android.buildFeatures.buildConfig=true
  69. release {
  70. minifyEnabled false
  71. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  72. buildConfigField "boolean", "LOGGING_ENABLED", "true"
  73. };
  74. debug {
  75. minifyEnabled false
  76. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  77. buildConfigField "boolean", "LOGGING_ENABLED", "true"
  78. }
  79. }
  80. compileOptions {
  81. sourceCompatibility JavaVersion.VERSION_17
  82. targetCompatibility JavaVersion.VERSION_17
  83. }
  84. kotlinOptions {
  85. jvmTarget = JavaVersion.VERSION_17
  86. freeCompilerArgs += ["-Xjvm-default=all"]
  87. }
  88. android.applicationVariants.all {
  89. variant ->
  90. variant.outputs.all {
  91. DateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
  92. def time = format.format(new Date())
  93. outputFileName = "tm_v5_${versionName}_${time}_${variant.buildType.name}.apk"
  94. }
  95. }
  96. }
  97. dependencies {
  98. // // 添加依赖 (app/build.gradle)
  99. // implementation 'com.google.android.exoplayer:exoplayer-core:2.19.1'
  100. // implementation 'com.google.android.exoplayer:exoplayer-ui:2.19.1'
  101. // // FLV 扩展库
  102. // implementation 'com.google.android.exoplayer:extension-rtmp:2.19.1'
  103. // implementation fileTree(dir: 'libs', include: ['*.jar'])
  104. //
  105. // implementation 'com.github.bilibili:ijkplayer:1.0.0'
  106. implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
  107. implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
  108. implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
  109. implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
  110. implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
  111. implementation 'com.squareup.okio:okio:3.4.0' // 请根据需要使用最新版本
  112. implementation libs.androidx.core.ktx
  113. implementation libs.androidx.lifecycle.runtime.ktx
  114. implementation libs.androidx.activity.compose
  115. implementation platform(libs.androidx.compose.bom)
  116. implementation libs.androidx.ui
  117. implementation libs.androidx.ui.graphics
  118. implementation libs.androidx.ui.tooling.preview
  119. implementation libs.androidx.material3
  120. implementation libs.androidx.media3.decoder
  121. testImplementation libs.junit
  122. androidTestImplementation libs.androidx.junit
  123. androidTestImplementation libs.androidx.espresso.core
  124. androidTestImplementation platform(libs.androidx.compose.bom)
  125. androidTestImplementation libs.androidx.ui.test.junit4
  126. debugImplementation libs.androidx.ui.tooling
  127. debugImplementation libs.androidx.ui.test.manifest
  128. // implementation (libs.retrofit)
  129. implementation libs.retrofit
  130. implementation libs.converter.gson
  131. implementation 'com.google.code.gson:gson:2.10.1'
  132. implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
  133. implementation 'io.reactivex:rxjava:1.2.9'
  134. implementation 'io.reactivex:rxandroid:1.2.1'
  135. implementation 'com.squareup.retrofit2:adapter-rxjava:2.0.0'
  136. implementation 'androidx.appcompat:appcompat:1.6.1'
  137. // implementation 'com.android.support:appcompat-v7:28.0.0'
  138. implementation project(":android-sdk-v5-uxsdk")
  139. implementation "com.dji:dji-sdk-v5-aircraft:5.15.0"
  140. compileOnly "com.dji:dji-sdk-v5-aircraft-provided:5.15.0"
  141. runtimeOnly 'com.dji:dji-sdk-v5-networkImp:5.15.0'
  142. implementation 'androidx.core:core-ktx:1.9.0'
  143. implementation 'androidx.appcompat:appcompat:1.6.1'
  144. implementation 'com.google.android.material:material:1.8.0'
  145. implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
  146. testImplementation 'junit:junit:4.13.2'
  147. androidTestImplementation 'androidx.test.ext:junit:1.1.5'
  148. androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
  149. implementation "org.java-websocket:Java-WebSocket:1.6.0"
  150. implementation 'com.github.NodeMedia:NodeMediaClient-Android:2.9.7'//推流 SDK
  151. implementation 'com.github.getActivity:XXPermissions:18.5'
  152. implementation 'com.github.NodeMedia:NodeMediaClient-Android:3.2.7'
  153. implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
  154. implementation 'org.greenrobot:eventbus:3.1.1'
  155. // 更新Retrofit版本以匹配OkHttp
  156. implementation 'com.squareup.retrofit2:retrofit:2.9.0'
  157. implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
  158. // 更新logging-interceptor版本以匹配OkHttp
  159. implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
  160. /** <-----------------MQTT功能--------------------> **/
  161. implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
  162. implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
  163. // 移除 Lombok 依赖以减少 APK 大小
  164. compileOnly 'org.projectlombok:lombok:1.18.30' // 只在编译期使用
  165. annotationProcessor 'org.projectlombok:lombok:1.18.30' // 注解处理器
  166. // 添加multidex支持
  167. implementation 'androidx.multidex:multidex:2.0.1'
  168. }