Nó hiện đang được một phiên bản Gradle khác sử dụng


108

Tôi mới sử dụng hệ thống xây dựng Gradle. Tôi muốn thực hiện một số chức năng cơ bản trên đó. Tôi đang chạy / xây dựng nó trong dòng lệnh. Tôi đang tham khảo Hướng dẫn sử dụng . Và, thực hiện một số nhiệm vụ đơn giản.

Khi tôi bắt đầu chạy các tác vụ đơn giản, nó đã được tạo thành công. Nhưng, sau một số lần, nó đang hiển thị "It is currently in use by another Gradle instance"và trở thành BUILD FAILED. Tôi đang sử dụng một thiết bị đầu cuối để chạy tác vụ. Tôi đã không chạy bất cứ điều gì vào thời điểm đó.

Nếu tôi đóng thiết bị đầu cuối tạo ra lỗi, vấn đề này sẽ được giải quyết. Nhưng, tôi biết rằng nó không phải là giải pháp cho điều đó.

Tại sao lỗi này thường xuyên xảy ra?

Làm thế nào để giải quyết nó?

Và, hãy tham khảo bất kỳ liên kết nào để nâng cao kiến ​​thức của tôi về hệ thống Gradle Build trong Android.


4
Bạn có tình cờ sử dụng gradle trong chế độ daemon không? Bạn có thể kiểm tra bằng cách chạy lệnh gradle --stop. Bạn sẽ mong đợi nhận được đầu ra Không có daemon Gradle đang chạy hoặc trình nền Gradle bị dừng .
topr

@topr Tôi không sử dụng chế độ daemon ..
Dhasneem

3
Giải pháp: (Điều đó hiệu quả với tôi) Bước 1. Khởi động trình quản lý tác vụ tìm / xác minh rằng KHÔNG CÓ HAI phiên bản java.exe đang chạy. Bước 2. Chỉ cần diệt một java.exe bất kỳ hoặc cả hai và khởi động lại Android Studio. Thưởng thức
Lakhwinder Singh Dhillon

Câu trả lời:


286

Loại bỏ các tệp khóa trong bộ đệm ẩn gradle bằng cách thực hiện một cái gì đó như sau:

find ~/.gradle -type f -name "*.lock" -delete

12
Cảm ơn! Nó làm việc sau khi tôi bổ sung chạy find /path-to-project-dir/.gradle -type f -name "*.lock" | while read f; do rm $f; done
Tyler

4
Hôm nay tôi quay lại câu hỏi này và lần này tôi cần kill -9xử lý, ngoài việc xóa các tệp khóa. Thông báo trong tiêu đề câu hỏi ngay sau đó là PID: Đã xảy ra sự cố: Hết thời gian chờ để khóa bộ đệm lịch sử tác vụ (,,,). Nó hiện đang được sử dụng bởi một phiên bản Gradle khác. Chủ sở hữu PID: 4354 PID của chúng tôi: 9500
Joshua Goldberg

@JoshuaGoldberg Bạn đã kiểm tra cách thức và thời điểm bắt đầu quá trình # 4354 trước khi giết nó chưa? (Tôi chỉ tò mò.)
Người quản lý đêm

2
Cảm ơn bạn đã chia sẻ lệnh đó, tôi chưa bao giờ gặp sự cố đó trước đây và sau khi xóa các tệp khóa cho gradle, tôi đã có thể chạy lại máy chủ của mình. Câu trả lời này phải được đánh dấu là "Câu trả lời hay nhất"
Raul Rivero

1
@ shashank-chandak in a bash shell (Terminal hoặc Cygwin)
Người quản lý đêm

31

Đôi khi, cách nhanh chóng dẫn đến một thỏa thuận không thanh lịch, chúng ta hãy đi:

Trước tiên, tìm # trong số tất cả quy trình gradle đang chạy

ps -A | grep gradle

Sau đó, lấy ID, giết từng người một

sudo kill -9 <process ID>

Bây giờ bạn tốt ;-)


29

Tôi đã gặp phải lỗi này và phải xóa nội dung trong .gradle/caches/thư mục của người dùng và nội dung trong .gradle/thư mục dự án của tôi để bắt đầu lại.

Bạn không chắc chắn điều gì đã gây ra nó, có thể là một bản dựng không thành công khiến các tệp này ở trạng thái bị khóa?


Vấn đề này được lưu ý ở đây - Problem.gradle.org/browse/GRADLE-2795 - Mặc dù lỗi gradle tồn tại, tôi nghĩ đây là giải pháp tốt nhất.
Joshua Goldberg

3
Trên thực tế, tôi đã thành công khi xóa ~ / .gradle / caches / * mà không cần chạm vào thư mục .gradle của dự án.
Joshua Goldberg

Thật may mắn cho bạn @JoshuaGoldberg, nhưng trong trường hợp của tôi, tôi thậm chí không thể xóa thư mục chaches. những gì có thể được vấn đề?
ngoài khơi

Tôi đã xóa .gradle / caches / ** và nó hoạt động trở lại. Điều kỳ lạ là tôi chỉ sử dụng ./gradlew mà không nên sử dụng phiên bản gradle cục bộ phải không?
Ben Groot

1
@BenGroot AFAIK tất cả các daemon gradle có cùng phiên bản gradle chia sẻ cùng một bộ nhớ cache (nếu không bị ép buộc một cách rõ ràng), bất kể chúng được bắt đầu từ đâu.
ubuntudroid

10

Đối với máy Windows:

Mở Trình quản lý Tác vụ (Ctrl-Alt-Delete và kiểm tra Quy trình)

-> Nếu bạn chạy hai phiên bản android studio, hãy đóng một (Kết thúc tác vụ)

-> Sau đó đóng OpenJDK Platform Binary

-> Đồng bộ hóa Gradle bây giờ trên AndroidStudio và nó sẽ hoạt động ngay bây giờ


7

Điều này có thể xảy ra vì có nhiều hơn một phiên bản của Android Studio.


Đồng ý, việc mở studio android nhiều cửa sổ và đồng bộ hóa đồng thời cũng gây ra sự cố này
mochadwi

5

Chỉ cần diệt quy trình java.exe khắc phục sự cố của tôi.

-- Biên tập --

nếu không được sửa thì:

  • diệt quy trình OpenJdkPlatform.

nếu không được sửa thì:

  • xóa tất cả tệp ".lock" khỏi thư mục .gradle và các thư mục con (windows: C: \ Users \ Username \ .gradle).

nếu không được sửa thì:

  • đổi tên hoặc xóa thư mục .gradle và thử lại.

Sau khi đọc câu trả lời của bạn, tôi đã xóa thư mục .gradle và bây giờ sau khi biên dịch lại ứng dụng bị hỏng hoàn toàn.
red-devil

Sau khi đọc câu trả lời của bạn, tôi đã xóa thư mục .gradle và bây giờ sau khi biên dịch lại ứng dụng bị hỏng hoàn toàn. Kích thước phông chữ đã tăng, phần đệm tăng lên, nhận được lỗi xác thực ngẫu nhiên. Tôi có thể làm gì bây giờ?
red-devil

1
Bạn có chắc chỉ cần xóa thư mục .gradle? loại bỏ .gradle phải không có bất kỳ tác dụng phụ nào đối với mã ứng dụng của bạn. nó chỉ là bộ nhớ cache gradle và nếu bạn biên dịch lại ứng dụng của mình. gradle sẽ tải xuống các tệp cần thiết. thử xây dựng sạch sẽ.
Ahmad Dehnavi

3

Thông báo lỗi Gradle đó thường được theo sau bởi các ID quy trình liên quan, vì vậy nó sẽ là

Gradle sync failed: Timeout waiting to lock daemon addresses registry [...].
It is currently in use by another Gradle instance.

Owner PID: 1234
Our PID: 5678
Owner Operation: ...

Để mở khóa, chỉ cần hủy quá trình chủ sở hữu:

sudo kill -9 1234

2

Đối với hệ điều hành Windows:

Tôi nhận ra rằng nó có liên quan đến một tệp khóa nên tôi chỉ cần truy cập .gradle \ buildOutputCleanup trong thư mục dự án và xóa tệp cache.properties.lock và xây dựng lại dự án. Nó đã hoạt động hoàn hảo.


2

nhấn CTRL + SHIFT + ESCđể mở trình quản lý tác vụ bây giờ tìm OpenJDKvà diệt nó ở nơi lỗi trỏ đến thích

D:\.gradle\daemon\4.10.1\registry.bin.lock

xóa tệp và gửi lại và bạn đã sẵn sàng.


1

Tôi đã gặp vấn đề tương tự trên mac:

cẩn thận, rằng dự án của bạn KHÔNG nằm trên đĩa cứng bên ngoài. Vị trí của dự án của bạn phải nằm trên đĩa cứng với hệ điều hành của bạn.

(Xây dựng ứng dụng Ionic)


Có vẻ như trong trường hợp của tôi, vấn đề cũng là điều này. Một ngày khác, tôi đã chuyển dự án sang một ổ đĩa ngoài.
DmitryKanunnikoff

1

Gặp vấn đề tương tự trên máy Mac, không có cách nào ở trên phù hợp với tôi. Tuy nhiên, điều hoạt động là mở Trình theo dõi hoạt động và đóng một quy trình java đang chạy. Tôi cũng nhận thấy rằng một tệp .hprof đã được tạo và tôi đã xóa. Sau đó, tôi chạy dự án của mình và nó hoạt động.


1

Tôi có thể đến muộn nhưng có vẻ như giải pháp nhanh chóng và hiệu quả.

Thực hiện các bước sau.

  1. Hành hình ps -ef | grep gradle
  2. Mở terminal và chuyển đến đường dẫn ~ / .gradle / caches
  3. Hành hình find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done

Xong rôi.


1

Tôi đang gặp phải vấn đề tương tự trong dự án của mình nhưng tôi đã giải quyết vấn đề này bằng cách vô hiệu hóa dự án, vì vậy hãy làm theo các bước sau trong android studio File -> Invalidate Caches / Restart ...


0

Tôi không cần thiết phải xóa bất kỳ tệp nào để sửa lỗi này.

Vấn đề tôi gặp phải là các phiên bản Gradle đã bị treo và 6 mục nhập dấu nhắc lệnh trong danh sách tác vụ của tôi đã được tạo bởi Java.

Buộc đóng các phiên bản nhắc lệnh cho phép tôi tiếp tục công việc như bình thường.


0

Công việc của nó cho tôi cho vấn đề: -

"Lỗi: Hết thời gian chờ để khóa lọ Nó hiện đang được một phiên bản Gradle khác sử dụng. PID chủ sở hữu: 6896 PID của chúng tôi: 5048 Chủ sở hữu Hoạt động: Hoạt động của chúng tôi: Khóa"

Giải pháp:-

  1. đóng Android Studio và mở trình quản lý Tác vụ và kết thúc quá trình java.exe
  2. mở ... gradle \ caches.
  3. Xóa tệp jar2.lock.
  4. Mở Studion android và dọn dẹp dự án.

0

Đã thử tất cả các câu trả lời này, bao gồm diệt quy trình java, xóa .gradle trong HOME_DIR và trong dự án dir, khởi động lại Android Studio và thậm chí khởi động lại hệ điều hành.

Nó bắt đầu hoạt động bình thường chỉ sau khi tôi khởi chạy đồng bộ hóa gradle.


0

Giải pháp rất đơn giản:

không cần phải giết Android Studio, chỉ cần giết OpenJdkPlatformquá trình, sau đó xóa .locktệp nằm trong:

rootProject/.gradle/<version>/taskHistory

0

Trong khi quá trình tắt và / hoặc xóa tệp khóa hoạt động, Gradle sẽ có thể tự xử lý việc này, giải quyết vấn đề vĩnh viễn . Báo cáo sự cố này gợi ý giải pháp: Gradle không thể giao tiếp với dịch vụ gradle.

Hãy xem tường lửa mạng cục bộ của bạn. Trong trường hợp của tôi,

  • cho phép lưu lượng đi từ 127.0.0.1 đến 127.0.0.1,

    sudo iptables -A OUTPUT -p udp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    
  • cho phép lưu lượng đến từ 127.0.0.1

    sudo iptables -A INPUT -s 127.0.0.1 -p udp -j ACCEPT
    

đã giải quyết vấn đề. Một cuộc thảo luận về một vấn đề tương tự tại github .

Và, hãy tham khảo bất kỳ liên kết nào để nâng cao kiến ​​thức của tôi về hệ thống Gradle Build trong Android.

Các nhiên Udacity gradle , nếu bạn có một thời gian.


0

mở thiết bị đầu cuối và di chuyển đến đường dẫn dự án sau đó chạy tùy thuộc vào hệ thống hoạt động: gradlew clean hoặc ./gradlew clean


0

Tôi đã phải đối mặt với cùng một vấn đề. Nhưng tôi đã giải quyết nó bằng cách khởi động lại studio Android của mình. Tôi đang sử dụng OneDrive để lưu dự án của mình.


0

Tôi đã gặp vấn đề tương tự và tôi đã làm hai bước và nó đã được giải quyết.

  1. JDK của tôi chưa được cài đặt trên Mac (tôi quên cài đặt) tôi đã cài đặt nó.
  2. Tôi đã xóa tất cả các mục khỏi thư mục bộ nhớ đệm nằm trong đường dẫn này /Users/icon_developer/.gradle/ và xây dựng lại dự án. Nó đã làm việc!

0

tất cả mọi người cuối cùng, tôi có giải pháp hoàn chỉnh

Error :- Timeout Gradle cashe its running in other gradle


distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

Please add this Line in Wrapper.Propertis and Sync now
After Sync the project When 
Invalidthcast\restart   to get the requesting componants

0

Tôi đã quá mắc kẹt với điều tương tự. Nhưng nó đã sớm được sắp xếp. Chỉ cần xóa tệp:

D:\.gradle\daemon\6.1.1\registry.bin.lock

Ngoài ra, tôi đã kết thúc OpenJDK từ trình quản lý tác vụ. Không biết nó có giúp được gì hay không nhưng cả hai đều giải quyết được vấn đề.


0

Trong trường hợp của tôi, chỉ cần đóng Android Studio và mở lại, vấn đề đã được giải quyết.


0

Để giải quyết vấn đề này trong windows

  1. Trình quản lý tác vụ Goto
  2. Tìm PID của chủ sở hữu trong "chi tiết" của trình quản lý tác vụ
  3. Kết thúc nhiệm vụ

0

Đối với tôi, trên máy Mac, hãy chọn Filedọc trên cùng, sau đó chọn Invalidate Caches / Restart...thực hiện thủ thuật.

Một giải pháp đơn giản tốt đẹp nếu nó cũng phù hợp với bạn!

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.