Trong dự án Android Studio
tôi có hai build configuration
với một số buildConfigField
:Làm thế nào để tạo ra buildConfigField với String loại
buildTypes {
def SERVER_URL = "SERVER_URL"
def APP_VERSION = "APP_VERSION"
debug {
buildConfigField "String", SERVER_URL, "http://dev.myserver.com"
buildConfigField "String", APP_VERSION, "0.0.1"
}
release {
buildConfigField "String", SERVER_URL, "https://myserver.com"
buildConfigField "String", APP_VERSION, "0.0.1"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Tôi nhận được và báo lỗi như sau:
/path/to/generated/BuildConfig.java
Error:(14, 47) error: ';' expected
Error:(15, 47) error: ';' expected
các BuildCofig.java tạo ra được như sau:
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.mycuteoffice.mcoapp";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
// Fields from build type: debug
public static final String APP_VERSION = 0.0.1;
public static final String SERVER_URL = http://dev.mycuteoffice.com;
}
I th mực APP_VERSION
và SERVER_URL
không được tạo đúng cách vì là loại Chuỗi chúng không có dấu ngoặc kép.
Tôi không chắc chắn lý do tại sao nó được tạo theo cách như vậy. Vui lòng cho tôi biết cách tôi có thể giải quyết vấn đề này.
Câu hỏi được dự định sử dụng 'SERVER_URL' làm biến. Đặt "SERVER_URL" trong dấu ngoặc kép làm cho giá trị là Chuỗi theo nghĩa đen. Câu trả lời của @ madhead là do đó chính xác hơn (và đẹp hơn). –
@WillVanderhoef, bạn hoàn toàn sai. Nó chỉ đơn giản là không hoạt động nếu bạn không đặt 'SERVER_URL' vào dấu ngoặc kép. Bạn sẽ biết nó nếu bạn đã thử nó trước khi bình luận. Thông báo lỗi là 'Lỗi: (32, 0) Không thể tìm thấy thuộc tính 'SERVER_URL' trên BuildType _...' –
. Tôi đã sử dụng câu trả lời của Simas làm cơ sở và chỉ sao chép nó. Quan điểm của tôi không phải là về trường thứ ba (tên biến), nhưng về việc sử dụng dấu ngoặc kép để thoát giá trị biến: nếu biến không có dấu ngoặc kép, bạn có thể chỉ đơn giản là dấu ngoặc kép bên ngoài để loại bỏ dấu gạch chéo ngược. Tôi đã chỉnh sửa cả hai câu trả lời. – madhead