9
respostas

Erro ao executar o build do projeto 01

Versão do Java: 17.0.11. Ao eu executar o build do projeto 01, gerar APK no Android Studio, ocorrem os erros, que seguem abaixo:

/home/evaldo/softwares/flutter_linux_3.27.0/bin/flutter --no-color build apk Resolving dependencies... Downloading packages... args 2.4.2 (2.6.0 available) async 2.11.0 (2.12.0 available) boolean_selector 2.1.1 (2.1.2 available) characters 1.3.0 (1.4.0 available) clock 1.1.1 (1.1.2 available)

collection 1.19.0 (was 1.17.1) (1.19.1 available) cupertino_icons 1.0.5 (1.0.8 available) fake_async 1.3.1 (1.3.2 available) flutter_lints 2.0.1 (5.0.0 available) flutter_svg 2.0.7 (2.0.16 available) http 1.1.0 (1.2.2 available) http_parser 4.0.2 (4.1.2 available)

  • leak_tracker 10.0.7 (10.0.8 available)
  • leak_tracker_flutter_testing 3.0.8 (3.0.9 available)
  • leak_tracker_testing 3.0.1 lints 2.1.1 (5.1.1 available)

    matcher 0.12.16+1 (was 0.12.15) (0.12.17 available) material_color_utilities 0.11.1 (was 0.2.0) (0.12.0 available) meta 1.15.0 (was 1.9.1) (1.16.0 available) path 1.9.0 (was 1.8.3) (1.9.1 available) path_parsing 1.0.1 (1.1.0 available) petitparser 5.4.0 (6.0.2 available) < sky_engine 0.0.0 from sdk flutter (was 0.0.99 from sdk flutter) source_span 1.10.0 (was 1.9.1) (1.10.1 available) sqflite 2.2.8+4 (2.4.1 available) sqflite_common 2.4.5+1 (2.5.4+6 available) stack_trace 1.12.0 (was 1.11.0) (1.12.1 available) stream_channel 2.1.2 (was 2.1.1) (2.1.3 available) string_scanner 1.3.0 (was 1.2.0) (1.4.1 available) synchronized 3.1.0 (3.3.0+3 available) term_glyph 1.2.1 (1.2.2 available) test_api 0.7.3 (was 0.5.1) (0.7.4 available) typed_data 1.3.2 (1.4.0 available) vector_graphics 1.1.7 (1.1.15 available) vector_graphics_codec 1.1.7 (1.1.12 available) vector_graphics_compiler 1.1.7 (1.1.16 available)

  • vm_service 14.3.0 (15.0.0 available) xml 6.3.0 (6.5.0 available) These packages are no longer being depended on:
  • js 0.6.7 Changed 16 dependencies! 36 packages have newer versions incompatible with dependency constraints. Try flutter pub outdated for more information. Running Gradle task 'assembleRelease'... FAILURE: Build failed with an exception.
  • What went wrong: Could not open settings generic class cache for settings file '/home/evaldo/workspace_2019/3116-Flutter-MVC-Aula1/android/settings.gradle' (/home/evaldo/.gradle/caches/7.5/scripts/cmhfpkcf7ocfllmygpx5lw7ur).

    BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 65

  • Try:

    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.orgBUILD FAILED in 1m 8s Running Gradle task 'assembleRelease'... 69,6s ┌─ Flutter Fix ────────────────────────────────────────────────────────────────┐ │ [!] Your project's Gradle version is incompatible with the Java version that | Flutter is using for Gradle. │ │ │ If you recently upgraded Android Studio, consult the migration guide at │ │ https://flutter.dev/to/java-gradle-incompatibility. │ │ │ Otherwise, to fix this issue, first, check the Java version used by Flutter by | running flutter doctor --verbose. │ │ │ Then, update the Gradle version specified in │ /home/evaldo/workspace_2019/3116-Flutter-MVC-Aula1/android/gradle/wrapper/ | gradle-wrapper.properties to be compatible with that Java version. See the | link below for more information on compatible Java/Gradle versions: │ │ https://docs.gradle.org/current/userguide/compatibility.html#java │ │ │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ Gradle task assembleRelease failed with exit code 1 Process finished with exit code 1

Parece que o Flutter está reclamando da versão da JDK do Java.

9 respostas

Olá, Evaldo, como vai?

O erro que você mencionou indica uma incompatibilidade entre a versão do Gradle e a versão do Java instalada no seu sistema. Isso é comum quando o projeto utiliza uma versão do Gradle que não suporta Java 17 (class file major version 65). Vamos resolver isso em alguns passos:

  1. Verifique a versão do Java: Certifique-se de que a versão do Java que está instalada é a mesma que o Flutter está configurado para usar. Você pode verificar isso executando flutter doctor --verbose no terminal.

  2. Atualize o Gradle: A mensagem de erro sugere que a versão do Gradle não é compatível com a versão do Java que você está usando. Você pode atualizar o Gradle editando o arquivo gradle-wrapper.properties localizado em /home/evaldo/workspace_2019/3116-Flutter-MVC-Aula1/android/gradle/wrapper/. Procure por uma linha semelhante a distributionUrl=https\://services.gradle.org/distributions/gradle-x.x.x-all.zip e atualize para uma versão mais recente que seja compatível com o Java 17. Consulte a documentação de compatibilidade do Gradle para encontrar a versão correta.

  3. Atualize as dependências do projeto: Você pode tentar atualizar as dependências do projeto executando flutter pub upgrade para garantir que todas as bibliotecas estejam na versão mais recente e compatível.

  4. Consulte o guia de migração: Se você recentemente atualizou o Android Studio, pode ser útil seguir o guia de migração sugerido na mensagem de erro: Guia de migração do Flutter.

Depois de fazer essas alterações, tente executar o build novamente.

Espero que essas dicas ajudem a resolver o problema!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Mike, segui a sua orientação, mas o erro permanece. Eu executei o comando flutter doctor, e segue abaixo a saída no console:

saída console

Pela saída do console, você pode ver, que a JDK que está sendo utilizada é a do Android Studio, que é a: 21.0.3+-12282718-b509.11

Não é a minha JAVA_HOME , e tanto se eu utilizar as JDK que possuo instaladas na minha maquina e aponte na JAVA_HOME, o erro que é mostrado na saída do build, é o mesmo.

As JDKs que tenho são: java-17-openjdk-17.0.11.0.9-1 e java-21-openjdk-21.0.5.0.11-1

versao java gradleMinhas configurações seguem abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu fiz as alterações necessárias, mas o mesmo erro permanece.

Mike, será que está dando conflito, entre a JDK interna do Android Studio, e a JDK da JAVA_HOME ? Será que não dá para eu setar o Android Studio para utilizar a mesma JDK da JAVA_HOME, ao invés da JDK interna ?

Será que está dando conflito, entre a JDK interna do Android Studio, e a JDK da JAVA_HOME ? Será que não dá para eu setar o Android Studio para utilizar a mesma JDK da JAVA_HOME, ao invés da JDK interna ? Por favor, como eu seto o plugin do Flutter para usar a JDK da JAVA_HOME ? Os artigos que acho na internet me falam como setar o plugin do Gradle, mas do plugin do Flutter eles não são claros.

O que eu encontrei é para setar a JDK do SDK do Flutter, que é o comando: flutter config --jdk-dir $JAVA_HOME

E tanto eu setando o Flutter e o Gradle para usarem a JDK 17 ou 21, continua ocorrendo o mesmo erro:

What went wrong: Could not open settings generic class cache for settings file '/home/evaldo/workspace_2019/3116-Flutter-MVC-Aula1/android/settings.gradle' (/home/evaldo/.gradle/caches/7.3/scripts/6rsganmfoegqzd41sa1nqh2r7). BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 65

Agora não aparece mais a mensagem da JDK interna do Android toolchain, aparece somente a JDK do Android Studio, mas é pedido para atualizar a versão do Android SDK.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá, Evaldo.

Eu pesquisei mais a fundo por algum usuário que tenha passado por algum problema semelhante ao seu, e encontrei esse tópico no StackOverflow que trata do mesmo erro. Infelizmente está em inglês, mas usando o recurso de tradução que normalmente vem nos navegadores é possível compreender bem.

Alguns usuário relatam que basta substituir o JAVA_VERSION no arquivo release pela versão disponível na sua máquina, outros dizem que pode ser necessário fazer o downgrade do Java (é mencionado as versões 8 ou 11).

Peço que faça os teste e me retorne com o resultado, por favor. Se precisar de auxílio é só comentar nesse fórum.

Fico no aguardo :)

Mike, eu fiz as alterações necessárias, e passei daquele erro.Agora o erro é outro, é na SDK do Android. A SDK 35, não é para o Java 17, é para o Java 21, então setei a SDK 33. Só que ocorre outro erro.

Segue o erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue o conteúdo do arquivo 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"

android {
    namespace "com.example.grimorio"
    //compileSdkVersion flutter.compileSdkVersion
    //ndkVersion flutter.ndkVersion
    compileSdkVersion 33
    ndkVersion 33

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }

    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.example.grimorio"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        //minSdkVersion flutter.minSdkVersion
        //targetSdkVersion flutter.targetSdkVersion
        minSdkVersion 33
        targetSdkVersion 33
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

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

flutter {
    source '../..'
}

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

A SDK 35 do Android, exige o plugin do Gradle AGP, seja no mínimo na versão 8, e aí algumas tags dos arquivo de configuração, vão mudar a forma como são declaradas. E para eu rodar esse projeto de exemplo, pel oque eu entendi, eu não necessito da SDK 35 do Android.

Olá, Evaldo.

O que acontece agora é por conta de uma atualização do Flutter. Houve uma mudança na forma como os plugins devem ser declarados, e infelizmente não há uma forma automática de fazer isso, então você deve fazer as mudanças nas declarações de forma manual. No próprio log do erro há o link com o passo a passo para isso. Novamente está em inglês, mas é possível compreender bem usando o recurso de tradução.

Peço que faça as atualizações e me retorne, por favor.

Fico no aguardo :)

Mike, eu vou fazer as atualizações necessárias.