Tôi có một dự án Android dựa trên gradle với 4 mô-đun con - hai thư viện và hai ứng dụng. Tôi đã cố gắng đơn giản hóa các tệp build.gradle của từng mô-đun con bằng cách di chuyển một số mã/cấu hình được chia sẻ đến tệp build.gradle cấp cao nhất và sử dụng subprojects {}
để làm cho mã đó có sẵn cho từng mô-đun con.Không thể tìm thấy phương thức android() cho các đối số khi xây dựng dự án Android từ gradle
Các hệ thống tập tin trông như thế này:
Root
|- App1/
|- App2/
|- Lib1/
|- Lib2/
|- build.gradle
|- settings.gradle
Vấn đề là nếu tôi thêm một phần android {}
cho các tiểu dự án sau đó nhiệm vụ gradle thất bại. Ví dụ, đây là top-level tập tin của tôi build.gradle:
subprojects { project ->
android {
buildToolsVersion "20.0.0"
}
}
Chạy lợi nhuận gradle này:
gì đã xảy ra: Một vấn đề xảy ra đánh giá dự án root 'android'. Không thể tìm thấy phương thức android() cho đối số [build_7dngpra6ldok366maq0on77r7e $ _run_closure3_closure5 @ 43d95624] trên dự án gốc 'android'.
Tôi đã tìm kiếm cho bài viết tương tự và một số người đề nghị thêm dòng apply plugin: 'android'
cho từng tiểu dự án nhằm phơi bày các thiếu android()
phương pháp mà gradle được khiếu nại. Tuy nhiên, giải pháp đó không hiệu quả với tôi bởi vì nó có hiệu quả sẽ thêm dòng đó vào dự án thư viện, thay vào đó yêu cầu apply plugin: 'android-library'
.
Có cách nào để sử dụng android {}
bên trong số subprojects {}
khi bạn có ứng dụng và thư viện trong cùng một dự án không?
Tôi đã thực hiện thay đổi này ở chế độ gradle vẫn lỗi tương tự Tôi nhận được – AdiAtAnd
làm việc cho tôi, đảm bảo bạn chỉnh sửa tệp build.gradle chính xác (có 2, kiểm tra các thư mục) – vaskort