Android Studio gradle senkronizasyonunu manuel olarak nasıl çalıştırabilirim?


135

Android Studio'da Gradle sorunlarını ayıklıyorum ve "Gradle senkronizasyonunu çalıştır" referanslarını görüyorum, ancak bu komutu nasıl çalıştıracağımdan emin değilim.

Android stüdyosundan veya Mac terminalinden "Gradle senkronizasyonunu" nasıl çalıştırırım?

Yanıtlar:


213

Android stüdyosunun araç çubuğunda "Projeyi Gradle Dosyaları ile senkronize et" olarak işaretlenmiş bu düğme olmalıdır

DÜZENLEME: Ne zaman değiştirildiğini bilmiyorum ama şimdi şöyle görünüyor:

görüntü açıklamasını buraya girin

DÜZENLEME: Bu, 3.3.1'de göründüğü gibi VEYA menü çubuğundan Dosya -> Projeyi Gradle Dosyaları ile Eşitle seçeneğine giderek .görüntü açıklamasını buraya girin


2
Adnroid Studio 3.0.1'de eksik
Roman M

10
@RomanM Eksik değil ... "Dosya" ya taşındı ... Yani, kaydet simgesinin yanında
W0rmH0le

49

UYARI : --recompile-scriptskomut gradle5.0 sürümünden beri kullanımdan kaldırılmıştır . gradleSürümünüzü kontrol etmek için çalıştırın gradle -v.

./gradlew --recompile-scripts

hiçbir şey oluşturmadan bir senkronizasyon yapacak.


Alternatif olarak, kök projenizdeki komut satırı ile

./gradlew build

Uygulamanızı senkronize eder ve oluşturur ve Gradle senkronizasyonundan daha uzun sürer

Mevcut tüm derecelendirme görevini görmek için şunu kullanın: ./gradlew tasks


2
Evet ama inşa etmek daha doğru mu? Sync ve build arasındaki fark nedir?
JohnyTex

inşa etmek çok genel bir görevdir. bir somunu kırmak için balyoz kullanmak gibi. Android projelerinde "derleme" görevini çalıştırmak sonsuza kadar sürebilir!
2019

10
Com.android.tools.build:gradle:3.5.1, kullanıyorum ve seçeneği yok --recompile-scripts
geosmart

5.0'dan beri --recompile-scripts bilinmeyen bir komut satırı seçeneği haline geldi,
Francis Bacon

28

Android Studio 3.3'te burada:

görüntü açıklamasını buraya girin

Android Studio 3.1'deki cevaba göre https://stackoverflow.com/a/49576954/2914140 burada:

görüntü açıklamasını buraya girin

Bu komuta taşınır File > Sync Project with Gradle Files.

görüntü açıklamasını buraya girin


5
ROFL! Bu buton için 2 gündür arıyordum! Teşekkürler!
2018

1
@swooby, hoş geldiniz. Ben de bir süredir buluyordum, hatta bir soru sordum ve yardımcı oldular.
CoolMind

Bu seçenek artık mevcut değil mi? i.imgur.com/cNFUoxB.png (ekran görüntüsü yeni alındı, Android Studio
3.5.3'te

@Venryx, tuhaf. 3.6.3'üm var ve bu menü hala var ( imgur.com/a/F8FCpvk ). Her neyse, Araç Çubuğunda bir düğme kullanmak daha iyidir.
CoolMind

Görünüşe göre bazı AndroidStudio / Gradle dosyalarının güncelliğini yitirmiş olmasıyla ilgili bir sorundu. Bunları sildikten ve projeyi yeniden içe aktardıktan sonra seçenek tekrar ortaya çıktı.
Venryx

23

Klavye kısayolu severler, Dosya -> Ayarlar -> Tuş Eşlemesi -> Eklentiler -> Android Desteği -> Projeyi gradle dosyalarıyla senkronize et (Klavye kısayolu eklemek için sağ tıklayın) -> Uygula - seçeneğine giderek gradle senkronizasyonunu manuel olarak çalıştırmak için bir kısayol ekleyebilir. > Tamam ve bitirdiniz. Gradle Sync klavye kısayoluGradle sync kısayolunuz olarak başka herhangi bir kısayol tuşuyla çakışmayan herhangi bir uygun tuşu seçin (gradle sync key olarak Shift + 5'i seçtim), bu nedenle gradle sync'i manuel olarak çalıştırmak istediğinizde bu klavye kısayol tuşuna basmanız yeterlidir.


2
Mac OS X'te ilk iki adım için "Android Studio-> Tercihler"
CCJ

1
+ 1 soruya en iyi yanıtı
nAkhmedov

En iyi cevap, Android stüdyosunun benzer simgelerinden Sync Project simgesini bulmaya gerek yok. Sadece Shift + 5 tuşlarına basın ve bitirdiniz.
Er. Kaushik Kajavadara

13

Android Studio ana menüsünden Araçlar> Android> "Projeyi Gradle Dosyaları ile Eşitle" ye atıfta bulunduğunu varsayıyorum.


6
gradle --recompile-scripts

hiçbir şey oluşturmadan bir senkronizasyon yapıyor gibi görünüyor. otomatik inşayı şu şekilde etkinleştirebilirsiniz:

gradle --recompile-scripts --continuous

Daha fazla bilgi için lütfen belgelere bakın:

https://docs.gradle.org/current/userguide/gradle_command_line.html



gradle 5.1.1 --recompile-scripts seçeneğine sahip değil
Francis Bacon


1

İle ./gradlew tasksaynı olduğunu düşünüyorum Android studio sync. Neden? Açıklayacağım.

Jacob kapsam raporunu test ettiğimde bir sorunla karşılaşıyorum. ./gradlew clean :Test:testDebugUnitTestDoğrudan komut satırında çalıştırdığımda hata görünüyor.

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

Ancak, öncelikle android stüdyo senkronizasyonuna tıklarsam, tamam çalışıyor. Çünkü build/../jacocoagent.jardoğal olarak ortaya çıkıyor. Neden bilmiyorum, belki jacoco eklentisinde hata var. Koşarken bulduğum birim .gradlew taskskavanozun da görünmesini sağlıyor. Böylece gralde betiğinde aynı sonucu alabilirim.

Üstelik gradle --recompile-scriptssorun için çalışmıyor.


Merhaba Victor, bir sorunum var sizi yanlış kanıtlayabilir, İşte bulduğum şey, gradle.properties'imden, build.gradle'ımdan bir configProductID = 11111 ayarladım, "resValue" dizesi "ekliyorum. Temiz bir yapı yaparsam ADT'den R.string.ProductID kaynağı oluşturulabilir. Ardından, derlemek için gradlew assembleDebug yapabilirim. Sonra yapılandırma adımı "ProductID" den "myProductID" ye değiştiririm, ayrıca 'gradlew görevleri' yapmak için hata alırım 'Gradlew clean' yapamıyorum, hepsi başarısız. Hala mücadele ediyorum. ". \ Gradlew.bat --recompile-scripts" artık yok gibi görünüyor mu?
yunfei

0

Bir sorunum var, gradlew temizliğinin ADT yapısına eşit olmadığını kanıtlayabilirim. Ve şimdi onu düzeltmek için mücadele ediyorum.

İşte elde ettiğim şey: gradle.properties'imden build.gradle'ımdan bir configProductID = 11111 ayarladım, ekliyorum

resValue "string", "ProductID", configProductID

ADT'den temiz bir derleme yaparsam, R.string.ProductID kaynağı oluşturulabilir. O zaman aşağıdaki komutu başarıyla yapabilirim.

gradlew assembleDebug

Ancak, derleme sunucusu kurmaya çalıştığım için ADT IDE'den yardım istemiyorum, bu yüzden ADT derlemesini temiz kullanmaktan kaçınmam gerekiyor. İşte benim sorunum geliyor. Şimdi kaynak adımı "ProductID" den "myProductID" olarak değiştiriyorum, yapıyorum:

gradlew clean

Hata alıyorum

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

Eğer denersem:

.\gradlew.bat --recompile-scripts

Sadece hata alıyorum

Unknown command-line option '--recompile-scripts'.

Birkaç dakika önce aynı hata mesajını aldım:> Desteklenmeyen sınıf dosyası ana sürüm 57 Benim için sorun, bu gradle'ın Linux'ta mevcut openJdk13 ile çalışmamasıydı (Manjaro kullanıyorum ... bir Arch-Like Linux). Bunu düzeltmek için şunu yaptım: Bilgisayarıma hangi Java sürümünü yüklediğimi kontrol ettim ve sürüm 8'i seçtim: sudo archlinux-java stauts sudo archlinux-java set java-8-openjdk Belki bu yardımcı olur Sisteminiz pencere gibi görünse bile dışarı çıkarsınız. Bu yüzden başka bir SDK Sürümünü deneyin. Belki de sorununuzu çözer.
suther

Merhaba @suther, cevabınız için çok teşekkürler, temel nedeni buldum ve düzelttim, bunun JAVA sürümü yüzünden olduğunu sanmıyorum. Ama anlattığım gibi, "gradlew clean", "ADT clean" e eşit değildir. Düzeltmem basitçe "gradlew: app: dependencies" yapmaktı, bu gradle yapılandırma dosyalarından kaynak kimlikleri oluşturacak.
yunfei

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.