flutter_local_notifications icon indicating copy to clipboard operation
flutter_local_notifications copied to clipboard

Error while building the app

Open burekas7 opened this issue 1 year ago • 3 comments

Hi,

I'm getting this error for Android:

       1.  Dependency ':flutter_local_notifications' requires core library desugaring to be enabled
           for :app.

           See https://developer.android.com/studio/write/java8-support.html for more
           details.

I'm using Java17 I tried to upgrade the package to 17.1.2, didn't help.

Those are my Gradle files:

android/app/build.gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    namespace "com.**************"

    compileSdkVersion 34

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = '17'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.grasshopperlabs.driver"
        minSdkVersion 23
        targetSdkVersion 34
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

    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.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

android/build.gradle

buildscript {
    ext.kotlin_version = '1.9.22'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.google.gms:google-services:4.3.14'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
        classpath 'com.android.tools.build:gradle:8.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

burekas7 avatar Jun 16 '24 11:06 burekas7

This helps me: ****

Please correct your readme info, the JAAVA version is incorrect.

burekas7 avatar Jun 16 '24 18:06 burekas7

Please explain how the info in the readme incorrect and include a link to a repository hosting a minimal app that proves this. The info in the readme comes from Google themselves and when I look at what you put in your original post, it would indicate that you didn't follow the instructions at https://github.com/MaikuB/flutter_local_notifications/tree/master/flutter_local_notifications#gradle-setup either. For example, in your original post, it can be seen that you are missing the part to add

coreLibraryDesugaringEnabled true

This also explains why you received the error given that specific setting is to enable desugaring

MaikuB avatar Jun 19 '24 12:06 MaikuB

What if I need using Java version 17, gradle 8.2.2? How to fix this?

hoactp avatar Sep 06 '24 09:09 hoactp

Closing due to lack of response from OP

@hoactp I believe what you're referring to is more on what you have installed. That is a different thing to what is being specified in the the Gradle file

MaikuB avatar Nov 13 '24 12:11 MaikuB