Android Studio làm thế nào để chạy đồng bộ hóa thủ công?


135

Tôi đang gỡ lỗi các vấn đề của Gradle trong Android Studio và xem các tài liệu tham khảo về "Chạy đồng bộ hóa lớp", nhưng tôi không chắc cách chạy lệnh này.

Làm cách nào để tôi chạy "Đồng bộ hóa" từ studio Android hoặc thiết bị đầu cuối Mac?

Câu trả lời:


212

Studio Android nên có nút này trên thanh công cụ được đánh dấu "Dự án đồng bộ hóa với tập tin Gradle"

EDIT: Tôi không biết khi nào nó được thay đổi nhưng bây giờ nó trông như thế này:

nhập mô tả hình ảnh ở đây

EDIT: Đây là giao diện của 3.3.1 HOẶC bằng cách đi tới Tệp -> Dự án đồng bộ hóa với các tệp Gradle từ thanh thực đơn.nhập mô tả hình ảnh ở đây


2
mất tích trong Adnroid Studio 3.0.1
Roman M

10
@RomanM Nó không bị thiếu ... Nó được chuyển đến "Tập tin" ... Vì vậy, nó nằm bên cạnh biểu tượng lưu
W0rmH0le

49

CẢNH BÁO : --recompile-scriptslệnh đã bị từ chối kể từ gradlephiên bản 5.0. Để kiểm tra gradlephiên bản của bạn , hãy chạy gradle -v.

./gradlew --recompile-scripts

nó sẽ làm một sự đồng bộ mà không cần xây dựng bất cứ điều gì.


Ngoài ra, với dòng lệnh trong dự án gốc của bạn

./gradlew build

Nó sẽ đồng bộ hóa và xây dựng ứng dụng của bạn và mất nhiều thời gian hơn chỉ là đồng bộ hóa Gradle

Để xem tất cả các nhiệm vụ lớp có sẵn, sử dụng ./gradlew tasks


2
Có nhưng xây dựng nhiều hơn phải không? Sự khác biệt giữa đồng bộ hóa và xây dựng là gì?
JohnyTex

xây dựng là một nhiệm vụ rất chung chung. nó giống như sử dụng búa tạ để bẻ đai ốc. Trên các dự án Android, chạy nhiệm vụ "xây dựng" có thể mất mãi mãi!
mổ vào

10
Tôi sử dụng com.android.tools.build:gradle:3.5.1, và nó không có tùy chọn --recompile-scripts
geosmart

kể từ lớp 5.0, --recompile-scripts đã trở thành một tùy chọn dòng lệnh unkn,
Francis Bacon

28

Trong Android Studio 3.3 , đây là:

nhập mô tả hình ảnh ở đây

Theo câu trả lời https://stackoverflow.com/a/49576954/2914140 trong Android Studio 3.1 , đây là:

nhập mô tả hình ảnh ở đây

Lệnh này được chuyển đến File > Sync Project with Gradle Files.

nhập mô tả hình ảnh ở đây


5
ROFL! Tôi đã tìm kiếm 2 ngày cho nút này! Cảm ơn!
swooby

1
@swooby, bạn được chào đón. Tôi cũng đã tìm thấy nó một thời gian, thậm chí hỏi một câu hỏi, và họ đã giúp đỡ.
CoolMind

Tùy chọn này dường như không còn tồn tại? i.imgur.com/cNFUoxB.png (ảnh chụp màn hình vừa chụp, trong Android Studio 3.5.3)
Venryx

@Venryx, thật lạ. Tôi có 3.6.3 và menu này vẫn tồn tại ( imgur.com/a/F8FCpvk ). Dù sao, tốt hơn là sử dụng một nút trong Thanh công cụ.
CoolMind

Đây rõ ràng là một vấn đề với một số tệp AndroidStudio / Gradle đã lỗi thời. Sau khi xóa chúng và nhập lại dự án, tùy chọn hiển thị lại.
Venryx

23

Những người yêu thích lối tắt bàn phím có thể thêm lối tắt để chạy đồng bộ hóa lớp thủ công bằng cách đi tới Tệp -> Cài đặt -> Sơ đồ bàn phím -> Trình cắm -> Hỗ trợ Android -> Dự án đồng bộ hóa với các tệp lớp (Nhấp chuột phải vào nó để thêm phím tắt bàn phím) -> Áp dụng - > OK và bạn đã hoàn tất. Phím tắt Gradle SyncChọn bất kỳ phím thuận tiện nào làm phím tắt đồng bộ hóa lớp của bạn mà không xung đột với bất kỳ phím tắt nào khác, (tôi đã chọn Shift + 5 làm phím đồng bộ hóa lớp của tôi), vì vậy, tiếp theo khi bạn muốn chạy đồng bộ hóa lớp bằng tay, chỉ cần nhấn phím tắt bàn phím này.


2
đó là 'Android Studio-> Tùy chọn' cho hai bước đầu tiên trên Mac OS X
CCJ

1
+1 câu trả lời hay nhất cho câu hỏi
nAkhmedov

Câu trả lời hay nhất, Không cần tìm biểu tượng Sync Project từ các biểu tượng tương tự của studio android. Chỉ cần nhấn Shift + 5 và bạn đã hoàn tất.
Ơ. Kaushik Kajavadara

13

Tôi đoán nó đang đề cập đến Công cụ> Android> "Dự án đồng bộ hóa với các tệp Gradle" từ menu chính của Android Studio.


6
gradle --recompile-scripts

dường như làm một sự đồng bộ mà không xây dựng bất cứ điều gì. bạn có thể kích hoạt xây dựng tự động bằng cách

gradle --recompile-scripts --continuous

Vui lòng tham khảo các tài liệu để biết thêm:

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



lớp 5.1.1 không có tùy chọn --recompile-scripts
Francis Bacon


1

Tôi nghĩ ./gradlew taskslà giống với Android studio sync. Tại sao? Tôi sẽ giải thích nó.

Tôi gặp một vấn đề khi tôi kiểm tra báo cáo bảo hiểm jacoco. Khi tôi chạy ./gradlew clean :Test:testDebugUnitTesttrực tiếp trong dòng lệnh, lỗi xuất hiện.

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

Tuy nhiên, nếu tôi nhấp vào đồng bộ hóa studio android trước tiên, nó sẽ chạy tốt. Vì build/../jacocoagent.jarxuất hiện tự nhiên. Tôi không biết tại sao, có thể có lỗi trong plugin jacoco. Đơn vị tôi tìm thấy chạy .gradlew taskslàm cho bình cũng xuất hiện. Vì vậy, tôi có thể nhận được kết quả tương tự trong kịch bản gralde.

Bên cạnh đó, gradle --recompile-scriptskhông hoạt động cho vấn đề.


Xin chào Victor, tôi gặp rắc rối có thể chứng minh bạn sai, Đây là những gì tôi nhận được, tôi đã đặt cấu hìnhSản phẩm = 11111 từ gradle.properies của tôi, từ build.gradle của tôi, tôi thêm chuỗi "resValue". từ ADT, tài nguyên R. String. ProducttID có thể được tạo. Sau đó, tôi có thể thực hiện gradlew assemblybleDebug để xây dựng. Tôi không thể làm 'gradlew sạch', tất cả đều thất bại. Tôi vẫn đang vật lộn. Vì ". \ Gradlew.bat --recompile-scripts" dường như không còn tồn tại?
yunfei

0

Tôi có một vấn đề có thể bằng chứng gradlew sạch không bằng ADT xây dựng sạch. Và bây giờ tôi đang vật lộn để sửa nó.

Đây là những gì tôi nhận được: Tôi đặt cấu hìnhSản phẩm = 1111 từ gradle.properies của tôi, từ build.gradle của tôi, tôi thêm

resValue "string", "ProductID", configProductID

Nếu tôi thực hiện một bản dựng sạch từ ADT, tài nguyên R. String. ProducttID có thể được tạo. Sau đó tôi có thể thực hiện lệnh dưới đây thành công.

gradlew assembleDebug

Nhưng, khi tôi đang cố gắng thiết lập máy chủ xây dựng, tôi không muốn trợ giúp từ ADT IDE, vì vậy tôi cần tránh sử dụng ADT build sạch. Đây là vấn đề của tôi. Bây giờ tôi thay đổi tên tài nguyên của mình từ "ProductID" thành "my SẢNtID", tôi làm:

gradlew clean

Tôi gặp lỗi

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

Nếu tôi thử với:

.\gradlew.bat --recompile-scripts

Tôi chỉ nhận được lỗi của

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

Tôi đã có cùng một thông báo lỗi vài phút trước:> Tệp lớp không được hỗ trợ phiên bản chính 57 Vấn đề đối với tôi là, lớp đó không hoạt động với openJdk13 hiện tại trên Linux (Tôi sử dụng Manjaro ... một Linux giống như Arch). Vì vậy, để khắc phục điều này, tôi đã thực hiện điều này: Tôi đã kiểm tra phiên bản Java nào tôi đã cài đặt trên máy tính của mình và chọn phiên bản 8: sudo archlinux-java stauts sudo archlinux-java đặt java-8-openjdk bạn ra ngoài, ngay cả khi hệ thống của bạn dường như là cửa sổ. Vì vậy, hãy thử phiên bản SDK khác. Có lẽ nó cũng giải quyết vấn đề của bạn.
Suther

Xin chào @suther, cảm ơn bạn đã trả lời, tôi đã tìm ra nguyên nhân gốc và đã sửa, tôi không nghĩ đó là do phiên bản JAVA. Nhưng như tôi đã mô tả "gradlew clean" không bằng "ADT clean". Cách khắc phục của tôi chỉ đơn giản là thực hiện "gradlew: app: phụ thuộc", điều này sẽ tạo ID tài nguyên từ các tệp cấu hình lớp.
yunfei

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.