Android Studio como executar a sincronização gradle manualmente?

135

Estou depurando problemas do Gradle no Android Studio e consulte as referências a "Executar a sincronização do gradle", mas não sei como executar este comando.

Como executo o "Gradle sync" no Android studio ou no Mac terminal?

Alex Stone
fonte

Respostas:

212

O estúdio Android deve ter esse botão na barra de ferramentas marcada "Sincronizar projeto com arquivos Gradle"

EDIT: Eu não sei quando foi alterado, mas agora fica assim:

insira a descrição da imagem aqui

EDIT: Isto é o que parece no 3.3.1 OU, indo em File -> Sync Project with Gradle Files na barra de menus.insira a descrição da imagem aqui

Cai
fonte
2
em falta no Adnroid Studio 3.0.1
Roman M
10
@RomanM Não está faltando ... Ele mudou-se para "Arquivo" ... Então, é próxima para salvar ícone
W0rmH0le
49

AVISO : o --recompile-scriptscomando foi descontinuado desde gradlea versão 5.0. Para verificar sua gradleversão, execute gradle -v.

./gradlew --recompile-scripts

ele fará uma sincronização sem criar nada.


Como alternativa, com linha de comando no seu projeto raiz

./gradlew build

Ele sincronizará e criará seu aplicativo e levará mais tempo do que apenas uma sincronização Gradle

Para ver todas as tarefas gradle disponíveis, use ./gradlew tasks

Hugo Gresse
fonte
2
Sim, mas construir faz mais certo? Qual é a diferença entre sync e build?
JohnyTex 03/04/19
build é uma tarefa muito genérica. é como usar uma marreta para quebrar uma noz. Em projetos Android, a execução da tarefa "build" pode levar uma eternidade!
Cesards 20/07/19
10
Eu uso com.android.tools.build:gradle:3.5.1,and tem nenhuma opção --recompile-scripts
geosmart
desde o gradle 5.0, --rrecompile-scripts tornou-se uma opção de linha de comando desconhecida,
Francis Bacon
28

No Android Studio 3.3 está aqui:

insira a descrição da imagem aqui

De acordo com a resposta https://stackoverflow.com/a/49576954/2914140 no Android Studio 3.1 , está aqui:

insira a descrição da imagem aqui

Este comando é movido para File > Sync Project with Gradle Files.

insira a descrição da imagem aqui

CoolMind
fonte
5
ROFL! Estou procurando há 2 dias por este botão! Obrigado!
swooby
1
@swooby, de nada. Eu também estava encontrando há algum tempo, até fiz uma pergunta, e eles ajudaram.
CoolMind
Esta opção parece não existir mais? i.imgur.com/cNFUoxB.png (captura de tela tirada recentemente, no Android Studio 3.5.3)
Venryx
@ Venryx, é estranho. Eu tenho o 3.6.3 e esse menu ainda existe ( imgur.com/a/F8FCpvk ). De qualquer forma, é melhor usar um botão na barra de ferramentas.
CoolMind
Aparentemente, era um problema com alguns arquivos do AndroidStudio / Gradle sendo desatualizados. Após excluí-los e reimportar o projeto, a opção apareceu novamente.
Venryx
23

Os amantes de atalhos de teclado podem adicionar um atalho para executar a sincronização gradle manualmente, indo em Arquivo -> Configurações -> Mapa de teclas -> Plugins -> Suporte Android -> Projeto de sincronização com arquivos gradle (clique com o botão direito do mouse para adicionar atalho de teclado) -> Aplicar - > OK e pronto. Atalho do teclado Gradle SyncEscolha qualquer tecla conveniente como atalho de sincronização da gradle que não entre em conflito com nenhuma outra tecla de atalho (eu escolhi Shift + 5 como minha tecla de sincronização da gradle); então, quando você quiser executar a sincronização da gradle manualmente, basta pressionar esta tecla de atalho do teclado.

Amrit Pal Singh
fonte
2
é 'Android Studio-> Preferences' para os dois primeiros passos no Mac OS X
CCJ
1
+1 da melhor resposta para a pergunta
nAkhmedov 5/16
Melhor resposta, Não há necessidade de encontrar o ícone Sync Project a partir de ícones semelhantes do android studio. Basta pressionar Shift + 5 e pronto.
Er. Kaushik Kajavadara
13

Presumo que esteja se referindo a Ferramentas> Android> "Sincronizar projeto com arquivos Gradle" no menu principal do Android Studio.

CommonsWare
fonte
2

Atalho (Ubuntu, Windows):

Ctrl + F5

Sincronizará o projeto com arquivos Gradle.

Andrey
fonte
1
no atalho do MacOS não está definido, deve-se atribuí-lo. Descrição abaixo stackoverflow.com/a/29642935/1839096
Silwester
1

Eu acho que ./gradlew tasksé o mesmo Android studio sync. Por quê? Eu vou explicar isso

Encontro um problema ao testar o relatório de cobertura do jacoco. Quando corro ./gradlew clean :Test:testDebugUnitTestdiretamente na linha de comando, aparece um erro.

Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.2.jar_5bdiis3s7lm1rcnv0gawjjfxc/jacocoagent.jar

No entanto, se eu clicar na sincronização do android studio primeiro, ele funcionará bem. Porque o build/../jacocoagent.jaraparecem naturalmente. Eu não sei por que, talvez haja um bug no plugin jacoco. A unidade que acho em execução também .gradlew tasksfaz o jarro aparecer. Para que eu possa obter o mesmo resultado no script gralde.

Além disso, gradle --recompile-scriptsnão funciona para o problema.

Victor Choy
fonte
Oi Victor, Estou com um problema que pode provar que você está errado. Aqui está o que obtive. Defino um configProductID = 11111 do meu gradle.properties, do meu build.gradle, adiciono "resValue" string ". do ADT, o recurso R.string.ProductID pode ser gerado. Então, eu posso fazer o gradlew assembleDebug para construir. Depois, altero meu nome de configuração de "ProductID" para "myProductID". Eu não posso fazer 'gradlew clean', todos eles simplesmente falham. Eu ainda estou lutando. Como ". \ Gradlew.bat --recompile-scripts" parece não existir mais?
yunfei 09/01
0

Estou com um problema: a prova de que o gradlew clean não é igual ao ADT build clean. E agora estou lutando para consertá-lo.

Aqui está o que obtive: Defino um configProductID = 11111 do meu gradle.properties, do meu build.gradle, e adiciono

resValue "string", "ProductID", configProductID

Se eu fizer uma compilação limpa do ADT, o recurso R.string.ProductID poderá ser gerado. Então eu posso fazer o comando abaixo com sucesso.

gradlew assembleDebug

Mas, como estou tentando configurar o servidor de compilação, não quero ajuda do ADT IDE, portanto, evito usar o ADT build limpo. Aqui vem o meu problema. Agora, altero o nome do meu recurso de "ProductID" para "myProductID".

gradlew clean

Eu recebo erro

PS D:\work\wctposdemo> .\gradlew.bat clean

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\work\wctposdemo\app\build.gradle'

* What went wrong:
Could not compile build file 'D:\work\wctposdemo\app\build.gradle'.
> startup failed:
  General error during semantic analysis: Unsupported class file major version 57

Se eu tentar com:

.\gradlew.bat --recompile-scripts

Acabei de receber erro de

Unknown command-line option '--recompile-scripts'.
yunfei
fonte
Recebi a mesma mensagem de erro há alguns minutos:> Versão principal do arquivo de classe não suportada 57 O problema para mim foi que o gradle não funciona com o openJdk13 atual no Linux (eu uso o Manjaro ... um Linux semelhante ao Arch). Então, para corrigir isso, eu fiz o seguinte: verifiquei a versão Java que instalei no meu PC e escolhi a versão 8: sudo archlinux-java stauts sudo archlinux-java set java-8-openjdk Talvez isso ajude você sai, mesmo que seu sistema pareça ser o Windows. Então tente outra versão do SDK. Talvez isso também resolva seu problema.
suther 10/01
Oi @ suther, muito obrigado pela sua resposta, eu encontrei a causa raiz e corrigi, não acho que seja por causa da versão JAVA. Mas como eu descrevi "gradlew clean" não é igual a "ADT clean". Minha correção foi simplesmente fazer "gradlew: app: dependencies", isso gerará IDs de recursos a partir dos arquivos de configuração do gradle.
yunfei 12/01