build.gradle 7.3 KB

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