3
respostas

Não consigo fazer build do projeto.

Estou começando o curso, baixei o projeto inicial, descompactei e abri no AndroidStudio, versão 2023.3.1 Jellifish.

Logo de cara aparece o erro:

Unsupported Java. 
Your build is currently configured to use Java 17.0.10 and Gradle 4.10.1.

Possible solution:
 - Upgrade Gradle wrapper to 7.2 version and re-import the project

Depois de fazer o upgrade do Gradle wrapper para 7.2 conforme a solução apresentada, o erro muda para:

Unable to find method ''org.gradle.api.file.DirectoryProperty org.gradle.api.file.ProjectLayout.directoryProperty(org.gradle.api.provider.Provider)''
'org.gradle.api.file.DirectoryProperty org.gradle.api.file.ProjectLayout.directoryProperty(org.gradle.api.provider.Provider)'

Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

Fazer o "Re-download dependencies and sync project" não funciona.

Fazer o Stop Gradle build processes" também não, fico reiniciando o AndroidStudio infinitamente e volto sempre para o mesmo erro.

3 respostas

O erro pode estar relacionado à incompatibilidade de plugins ou à corrupção do cache de dependências.

O plugin do Android e o Gradle PRECISAM tá na versão compatível:

  1. Atualize o build.gradle do projeto:
    • Acesse o arquivo build.gradle no nível do projeto.

    • Atualize o plugin do Android para uma versão compatível, por exemplo:

      buildscript {
          repositories {
              google()
              mavenCentral()
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:7.0.0'  // ou versão mais recente compatível com Gradle 7.2
          }
      }
      

Passo 2: Limpar o Cache do Gradle

Limpa os caches do Gradle manualmente.

  1. Feche o Android Studio.
  2. Exclua os caches do Gradle:
    • Navegue até o diretório ~/.gradle/caches/ e exclua todas as pastas.
    • Exclua também a pasta .gradle na raiz do seu projeto.

Passo 3: Atualizar o Gradle Wrapper

O Gradle Wrapper TEM que tá configurado corretamente.

  1. Atualize o gradle-wrapper.properties:
    • No arquivo gradle/wrapper/gradle-wrapper.properties, certifique-se de que a URL está correta:

      distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
      

Passo 4: Verificar Plugins de Terceiros

Verifique se algum plugin de terceiros está causando o problema.

  1. Comente plugins de terceiros no arquivo build.gradle do seu módulo de aplicação (por exemplo, app/build.gradle).
  2. Tente sincronizar o projeto novamente. Se funcionar, reintroduza os plugins um por um para identificar o causador do problema.

Passo 5: Reiniciar daemons do Gradle

  1. Parar todos os daemons do Gradle:
    • Abra o terminal e execute o comando:

      ./gradlew --stop
      

Passo 6: Configurar a Versão do Java

Veja se a versão do Java configurada no seu projeto é a correta.

  1. Verifique o build.gradle do nível do app:

    • Abra o arquivo app/build.gradle e adicione/atualize as configurações para Java 11:

      android {
          compileOptions {
              sourceCompatibility JavaVersion.VERSION_11
              targetCompatibility JavaVersion.VERSION_11
          }
      }
      
  2. Configurar a versão do Java no Android Studio:

    • No Android Studio, vá para File > Project Structure > SDK Location.
    • Certifique-se de que o JDK selecionado é a versão 11.

Passo 7: Re-sincronizar e Limpar Projeto

  1. Re-sincronizar o projeto:

    • Vá para File > Sync Project with Gradle Files.
  2. Limpar e reconstruir o projeto:

    • Vá para Build > Clean Project e depois Build > Rebuild Project.

Exemplo Completo de build.gradle

build.gradle (nível do projeto):

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0'  // ou versão mais recente
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip

build.gradle (nível do app):

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    // outras dependências...
}

Se ainda enfrentar dificuldades, forneça mais detalhes para que possamos ajudar melhor.

Olá, boa tarde,

Obrigado pela ajuda!

Mas ainda não funcionou. Veja que eu estou usando o projeto do jeito que veio após descompactar, não adicionei nenhum plugin de terceiro ou algo do tipo.

Após fazer as alterações que você sugeriu, ao tentar fazer o build clean ou qualquer outro tipo de sincronização retorna o erro:

Build file 'C:\Users\SCCL2402\AndroidStudioProjects\android-tech-news\app\build.gradle' line: 10

A problem occurred evaluating project ':app'.
> No signature of method: build_7bufxyftgr2kj8n389istl43y.android() is applicable for argument types: (build_7bufxyftgr2kj8n389istl43y$_run_closure1) values: [build_7bufxyftgr2kj8n389istl43y$_run_closure1@5352745f]

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'.
    ultScriptRunnerFactory.java:91)
    ... 148 more

O meu arquivo build.gradle (:app) está assim:

//apply plugin: 'com.android.application'
//apply plugin: 'kotlin-android'
//apply plugin: 'kotlin-android-extensions'
//apply plugin: 'kotlin-kapt'

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "br.com.alura.technews"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    androidExtensions {
        experimental = true
    }
    compileOptions {
        targetCompatibility = JavaVersion.VERSION_11
        sourceCompatibility = JavaVersion.VERSION_11
    }
}

dependencies {
    def room_version = "2.0.0"

    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//    implementation 'androidx.appcompat:appcompat:1.0.2'
//    implementation 'androidx.core:core-ktx:1.0.1'
    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'

    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.13.1'
}

Enquanto o aquivo build.gradle (android-tech-news) está assim:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
//    ext.kotlin_version = '1.3.21'
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0'
//        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

task clean(type: Delete) {
    delete rootProject.buildDir
}

E o arquivo gradle-wrapper.properties:

#Mon Apr 01 09:10:17 BRT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip

Eu apaguei também toda a pasta ~/.gradle/caches/ com tudo que tinha dentro.

Olá, fiz algumas alterações aqui e agora estou com os seguintes erros:

Could not create task ':app:compileDebugKotlin'.
Could not create task ':app:dataBindingGenBaseClassesDebug'.
Cannot use @TaskAction annotation on method DataBindingGenBaseClassesTask.writeBaseClasses() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method.

e

Starting Gradle Daemon...
Gradle Daemon started in 2 s 857 ms
> Task :prepareKotlinBuildScriptModel UP-TO-DATE
Warning: This version only understands SDK XML versions up to 2 but an SDK XML file of version 3 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
Warning: elemento inesperado (uri:"", local:"extension-level"). Os elementos esperados s�o <{}codename>,<{}layoutlib>,<{}api-level>
Warning: elemento inesperado (uri:"", local:"base-extension"). Os elementos esperados s�o <{}codename>,<{}layoutlib>,<{}api-level>
AGPBI: {"kind":"warning","text":"We recommend using a newer Android Gradle plugin to use compileSdk = 33\n\nThis Android Gradle plugin (7.0.0) was tested up to compileSdk = 31\n\nThis warning can be suppressed by adding\n    android.suppressUnsupportedCompileSdk=33\nto this project's gradle.properties\n\nThe build will continue, but you are strongly encouraged to update your project to\nuse a newer Android Gradle Plugin that has been tested with compileSdk = 33","sources":[{}]}

FAILURE: Build failed with an exception.

* What went wrong:
Could not create task ':app:compileDebugKotlin'.
Could not create task ':app:dataBindingGenBaseClassesDebug'.
Cannot use @TaskAction annotation on method DataBindingGenBaseClassesTask.writeBaseClasses() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method.