Plug-ins incompatíveis para android-apt após a atualização para Android Studio 2.3

101

Depois de atualizar do 2.2 para o 2.3, vejo este aviso

insira a descrição da imagem aqui

e quando tento compilar o projeto vejo este erro de compilação

insira a descrição da imagem aqui

Como posso resolver esse problema sem fazer o downgrade para uma versão anterior do Gradle? Existe alguma atualização do android-apt que pode resolver esse problema?

Bronx
fonte

Respostas:

179

O android-aptplugin está obsoleto .
Verifique aqui o guia de migração :

A partir da versão 2.2 do plugin Android Gradle, todas as funcionalidades fornecidas anteriormente pelo android-apt agora estão disponíveis no plugin Android.

Você pode remover android-aptseguindo o guia de migração para obter as funcionalidades equivalentes.

As partes importantes do guia de migração :

  • Certifique-se de usar o plug-in Android Gradle 2.2 ou mais recente.
  • Remova o android-aptplugin de seus scripts de construção
  • Alterar todos apt, androidTestApte testAptdependências para o seu novo formato:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Além disso, no plug-in Android Gradle, há uma verificação explícita para isso, que é o que você está vendo:

usando plug-ins incompatíveis para o processamento de anotação android-apt

As versões futuras do plug-in Gradle do Android não serão compatíveis com a forma como android-aptfunciona, o que é o motivo dessa verificação.

Gabriele Mariotti
fonte
Obrigado! Eu não sabia que o apt estava obsoleto.
Bronx
1
E no plugin Android do Gradle, o Google tem uma verificação explícita para ele, que é o que você está vendo. As futuras versões do Android Gradle não serão compatíveis com a forma como android-aptfunciona, por isso essa verificação.
garrafa de água de
onde está o cheque?
Ericn,
Eu não tenho nenhum apt, mas ainda recebo este aviso. EDIT: Acontece que era realm
behelit
Eu não vi NDROID-pt no meu código em nenhum lugar, mas obtendo erro. Qual pode ser o problema?
Mubashar
47

Para mim, estava tendo este erro ao usar a Vaultbiblioteca Contentful, que especifica que você inclui:

apply plugin: 'com.neenbedankt.android-apt'

e

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

O que você precisa fazer é EXCLUIR apply plugin: 'com.neenbedankt.android-apt'

e então ALTERAR :

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

para

annotationProcessor 'com.contentful.vault:compiler:2.1.0'
annotationProcessor 'com.contentful.vault:core:3.0.1'

Você sempre pode verificar https://github.com/contentful/vault para as versões mais recentes

Ojonugwa Jude Ochalifu
fonte
15
  1. Remover plugin apt

  2. Mudança:

    apt -> compilar

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Em seu build.gradle (app), adicione a defaultConfig:

vectorDrawables.useSupportLibrary = true

Octavian Ionel
fonte
6

Pegando carona em @Gabriele Mariotti aqui, já que sua resposta é muito precisa e sugere isso, mas não afirma. O Gradle também não sugere essa opção como válida, embora também seja. O equivalente de teste para androidTestApte testApté androidTestAnnotationProcessore testAnnotationProcessor.

Exemplo:

testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

Deve ser alterado para

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
superusuário
fonte
1

Caso o processador de anotações tenha argumentos, também pode ser necessário alterar isso:

apt {
    arguments {
        KEY "VALUE"
    }
}

para isso:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
Jox
fonte