Embora atrasada na resposta, esta é uma pergunta difícil para o Google (as aspas simples) e não está claro o que está acontecendo. Não tenho reputação ainda para comentar ou pedir escopo (ou postar 3 links), então esta resposta pode ser um pouco tediosa.
Para responder rapidamente, você pode ter vários plug-ins do Gradle em seu projeto.
Sincronizar Gradle Wrapper e Plugins
Meu problema parecia começar com um arquivo IML corrompido. O Android Studio (entre o fechamento e a reabertura de um projeto) começou a reclamar que um IML havia sumido (não era) e um módulo deveria ser excluído, o que recusei. Ele persistiu, eu atualizei para AS 0.8.7 (canal canário) e fiquei preso no problema de OP (Tarefa '' não encontrada no projeto raiz). Isso bloqueou completamente as compilações, então tive que me aprofundar no Gradle.
Minhas etapas de reparo no OSX (ajuste para Windows):
- Atualize o Android Studio para 0.8.7
- Preferências | Atualizações | Mude "Canal Beta" para "Canal Canário" e faça uma verificação agora.
- Você pode ignorar isso.
Foi verificado o wrapper Gradle (atualmente 1.12.2; não tente usar 2.0 neste momento).
Supondo que você não precise de uma versão específica, use a distribuição compatível mais recente
$ vi ~/project/gradle-wrapper.properties
...
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
Isso pode ser definido no Android Studio em Preferências | Gradle (mas 0.8.7 estava gerando erros de 'localização inválida').
- O 'wrapper' é apenas uma cópia do Gradle para cada projeto do Android Studio. Ele permite que você tenha o Gradle 2 em seu sistema operacional e diferentes versões em seus projetos. Os documentos do Android Developer explicam isso aqui .
- Em seguida, ajuste seus arquivos build.gradle para o plug - in . A versão do plugin Gradle deve ser compatível com a versão de distribuição / wrapper, para todo o projeto. Como a documentação das ferramentas (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) está um pouco desatualizada, você pode definir a versão do plugin muito baixa (como 0.8.0) e O Android Studio gerará um erro com o intervalo aceitável para o wrapper.
Exemplo, em build.gradle, você tem este plugin:
dependencies {
classpath "com.android.tools.build:gradle:0.12.+"
}
Você pode tentar mudá-lo para a versão exata, desta forma:
dependencies {
classpath "com.android.tools.build:gradle:0.12.2"
}
e (após registrar de qual versão você está mudando em cada caso) verificar se todos os arquivos build.gradle em seu projeto puxam a mesma versão do plugin. Manter o “+” deve funcionar (para 0.12.0, 0.12.1, 0.12.2, etc.), mas minha construção teve sucesso quando atualizei a biblioteca Volley do Google (originalmente gradle: 0.8. +) E meu projeto principal (originalmente 0.12. +) para a versão fixa: gradle: 0.12.2.
Outras verificações
Certifique-se de não ter dois módulos de aplicativo Android no mesmo projeto
Isso pode interagir com a solução final (diferentes versões do Gradle, acima) e causar
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
Para verificar, Build | O Make Project não deve abrir uma janela perguntando qual aplicativo você deseja fazer.
- Invalide seus caches
- Arquivo | Invalidar caches / reiniciar (stackoverflow.com/a/19223269/513413)
- Se a etapa 2 não funcionar, exclua ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)
- Saia do Android Studio
- $ rm -rf ~ / .gradle /
- Inicie o Android Studio e sincronize:
- Ferramentas | Android | Sincronizar projeto com arquivos Gradle
- Repita toda a sequência (sair ... sincronizar) algumas vezes antes de desistir.
- Limpe o projeto
- Construir | Projeto Limpo
Se você vir isto ...
Em minhas compilações recentes, continuei vendo falhas terríveis (páginas de exceções), mas em segundos as mensagens eram apagadas, a compilação era bem-sucedida e o aplicativo implantado. Como eu nunca conseguia explicar e o aplicativo funcionava, nunca percebi que tinha dois plug-ins do Gradle em meu projeto. Então, acho que os plug-ins do Gradle lutaram entre si; um travou, o outro perdeu seu estado e relatou o erro.
Se você tiver tempo, o vídeo de 1 hora "Uma introdução suave ao Gradle" (www.youtube.com/watch?v=OFUEb7pLLXw) realmente me ajudou a abordar os arquivos de compilação do Gradle, tarefas, decisões de compilação etc.
aviso Legal
Estou aprendendo essa pilha inteira, em um sistema operacional estrangeiro, depois de trabalhar em uma carreira diferente ... tudo ao mesmo tempo e sob pressão. Nos últimos meses, bati em todas as paredes que acho que o Android atingiu; Já estive aqui com bastante frequência e este é meu primeiro post. Achei que era uma solução difícil, por isso peço sinceramente desculpas se a qualidade da minha resposta reflete a dificuldade que tive em chegar a ela.