plugins { id("com.android.application") id("kotlin-android") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } android { namespace = "com.example.smartfarm_mobile" compileSdk = flutter.compileSdkVersion ?: 34 ndkVersion = "27.0.12077973" // Explicitly using the version required by plugins compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 // Enable core library desugaring isCoreLibraryDesugaringEnabled = true } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.example.smartfarm_mobile" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = 21 // Explicitly set min SDK to 21 for proper compatibility targetSdk = flutter.targetSdkVersion ?: 34 versionCode = flutter.versionCode ?: 1 versionName = flutter.versionName ?: "1.0.0" // Enable multidex support multiDexEnabled = true } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.getByName("debug") } } // Fix for file picker plugin issues packagingOptions { resources { excludes += setOf("META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/LICENSE.txt", "META-INF/license.txt", "META-INF/NOTICE", "META-INF/NOTICE.txt", "META-INF/notice.txt", "META-INF/ASL2.0") } } } flutter { source = "../.." } dependencies { // Add any additional dependencies needed for file_picker or other plugins implementation("androidx.multidex:multidex:2.0.1") // Add core library desugaring coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3") }