Gradle tạo một lớp có tên là BuildConfig
chứa các thành viên tĩnh (chẳng hạn như boolean DEBUG
, được đặt thành true cho các biến thể gỡ lỗi).
Bạn có thể hoặc truy vấn này trong java như vậy:
if (BuildConfig.DEBUG) {
BASE_URL = "http://debug.server.com"
} else {
BASE_URL = "http://release.server.com"
}
hoặc những điều tương tự như một lớp lót:
BASE_URL = BuildConfig.DEBUG ? "http://debug.server.com" : "http://release.server.com"
HOẶC
Bạn có thể thực sự đặt BASE_URL
bên trong BuildConfig
lớp sử dụng gradle như vậy:
android {
buildTypes {
debug {
buildConfigField "String", "BASE_URL", '"http://debug.server.com"'
}
release {
buildConfigField "String", "BASE_URL", '"http://release.server.com"'
}
}
}
Lưu ý đơn và đôi trích dẫn xung quanh giá trị trong gradle, như những người khác đã đề cập trong các ý kiến. Bằng cách này, các dấu nháy kép trở thành một phần của giá trị.
Kết quả là, các tài liệu tham khảo tĩnh BuildConfig.BASE_URL
sẽ trỏ đến URL tương ứng (ví dụ: "debug.server.com" cho debug, "release.server.com" cho phát hành)
Nguồn
2014-10-20 22:16:06
Cảm ơn rất nhiều, sẽ sử dụng phương pháp thứ hai, nó rất linh hoạt –
Bạn được chào đón. Cảm thấy tự do để đánh dấu là câu trả lời khi bạn có thể;) –
câu trả lời của bạn chỉ có tác dụng đối với tôi nếu tôi sử dụng dấu ngoặc kép thay vì độc thân và thoát khỏi chuỗi URL, như thế này: android { buildTypes { debug { buildConfigField "Chuỗi "," BASE_URL "," \ "http: //debug.server.com \" " } phát hành { buildConfigField" Chuỗi "," BASE_URL "," \ "http: //release.server.com \ "" } } } –