Cách Xử Lý Vấn Đề Proxy Cũ Trong Gradle.properties Khi Sử Dụng Android Studio

Bài viết hướng dẫn cách khắc phục triệt để vấn đề proxy cũ còn sót lại trong gradle.properties khi sử dụng Android Studio.

Có bao giờ bạn gặp phải tình huống sau không: Mạng internet hoạt động bình thường nhưng Android Studio vẫn báo lỗi "Connect to 127.0.0.1:xxxx failed: Connection refused" khi đồng bộ dự án? Điều khó hiểu hơn là bạn đã tắt hoàn toàn cài đặt proxy trong IDE, thậm chí khởi động lại máy tính, nhưng lỗi này vẫn tiếp tục xuất hiện. Đây không phải là vấn đề về mạng hay bug của IDE, mà là do những cấu hình proxy bị lãng quên trong hệ thống cấu hình của Gradle.

Để giải quyết triệt để vấn đề này, chúng ta cần tìm hiểu sâu về cơ chế tải cấu hình của Gradle và áp dụng phương pháp dọn dẹp từ cấp độ dự án đến hệ thống.

1. Cơ Chế Tải Cấu Hình Proxy Của Gradle

Gradle có một hệ thống ưu tiên cụ thể khi tải các cấu hình proxy từ nhiều nguồn khác nhau:

1.1 Hệ Thống Ưu Tiên Cấu Hình

Gradle sẽ đọc các cấu hình từ các vị trí sau theo thứ tự ưu tiên giảm dần:

  1. Tham số dòng lệnh - Ưu tiên cao nhất, truyền qua tham số -D
  2. gradle.properties cấp độ dự án - Vị trí tại thư mục gốc hoặc thư mục gradle/ của dự án
  3. gradle.properties cấp người dùng - Trong thư mục .gradle của người dùng
  4. gradle.properties toàn cầu - Trong thư mục cài đặt Gradle
  5. Biến môi trường hệ thống - Ví dụ như HTTP_PROXY, HTTPS_PROXY

Khi cấu hình proxy trong Android Studio, IDE thường ghi các thông số này vào gradle.properties cấp người dùng. Vấn đề xảy ra khi bạn tắt proxy trong giao diện IDE nhưng các giá trị cấu hình này không được xóa tự động.

1.2 Các Thông Số Cấu Hình Proxy Thường Gặp

Trong tệp gradle.properties, cấu hình proxy thường xuất hiện với định dạng:

# Cấu hình proxy HTTP
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=8080
systemProp.http.nonProxyHosts=localhost|127.*|[::1]

# Cấu hình proxy HTTPS
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=8080
systemProp.https.nonProxyHosts=localhost|127.*|[::1]

Nếu các cấu hình này tồn tại và chỉ tới một dịch vụ proxy không chạy, Gradle sẽ cố gắng kết nối tới địa chỉ đó và gây ra lỗi "Connection refused".

2. Cách Kiểm Tra Và Sửa Lỗi

2.1 Phân Tích Chi Tiết Thông Tin Lỗi

Khi thấy lỗi "Connect to 127.0.0.1:xxxx failed: Connection refused", hãy kiểm tra kỹ thông tin lỗi:

  • Số cổng trong thông báo lỗi cho biết cổng proxy nào từng được cấu hình.
  • Chi tiết stacktrace giúp xác định plugin hoặc tác vụ nào đang thực hiện yêu cầu mạng.

Kiểm tra kết nối mạng bằng cách sử dụng công cụ dòng lệnh:

# Kiểm tra cổng trên localhost
nc -zv 127.0.0.1 8080

Nếu kết nối bị từ chối, điều này chứng tỏ cổng không có dịch vụ lắng nghe.

2.2 Tìm Kiếm File Cấu Hình

Dưới đây là các đường dẫn chính để tìm kiếm file gradle.properties:

Cấp Độ Windows macOS/Linux Ghi Chú
Dự Án project-root/gradle.properties Tương tự Windows Thông thường nằm trong kiểm soát phiên bản
Người Dùng C:\\Users\\<username>\\.gradle\\gradle.properties /home/<username>/.gradle/gradle.properties Nguồn phổ biến gây lỗi
Toàn Cục GRADLE\_HOME/conf/gradle.properties Tương tự Windows Ít được sử dụng

2.3 Script Kiểm Tra Nhanh

Tạo script đơn giản để kiểm tra các cấu hình proxy:

#!/bin/bash
# Script kiểm tra proxy trong Gradle

echo "=== Kiểm Tra Cấu Hình Proxy ==="
echo ""

echo "1. Kiểm Tra Cấu Hình Dự Án:"
if [ -f "gradle.properties" ]; then
    grep -i proxy gradle.properties || echo "Không Tìm Thấy Proxy Trong Cấu Hình Dự Án."
else
    echo "Không Có Tệp gradle.properties Tại Cấp Độ Dự Án."
fi

echo ""
echo "2. Kiểm Tra Cấu Hình Người Dùng:"
USER_GRADLE_PROPS="$HOME/.gradle/gradle.properties"
if [ -f "$USER_GRADLE_PROPS" ]; then
    grep -i proxy "$USER_GRADLE_PROPS" || echo "Không Tìm Thấy Proxy Trong Cấu Hình Người Dùng."
else
    echo "Không Có Tệp gradle.properties Tại Cấp Độ Người Dùng."
fi

Thẻ: AndroidStudio Gradle ProxyConfiguration

Đăng vào ngày 2 tháng 6 lúc 04:09