15

Tôi có hai kích thước của một ứng dụng, gọi sau đó màu xanh lá cây và màu xanh. Sẽ chỉ có hai chiều này nhưng không giới hạn số lượng sản phẩm. Đây là cách tôi đặt nó lên trong gradleAndroid studio gradle hương vị kích thước xây dựng varients không hoạt động chính xác

flavorDimensions "green", "blue" 

productFlavors { 

    one { 
     applicationId "com.app.green.one" 
     versionCode 1 
     versionName "1.0.0.1"; 
     flavorDimension = "green" 
    } 
    two { 
     applicationId "com.app.blue.two" 
     versionCode 6 
     versionName "1.0.1"; 
     flavorDimension = "blue" 
    } 
} 

Nhưng rồi sau khi tôi đồng bộ gradle, trong xây dựng tab biến thể tất cả tôi thấy là oneTwoDebug và oneTwoRelease, nơi tôi sẽ thấy greenOneDebug greenOneRelease, blueTwoDebug, blueTwoRelease

về lý thuyết tôi muốn mở rộng nó là một cái gì đó như thế này

one { 
    applicationId "com.app.green.one" 
    versionCode 1 
    versionName "1.0.0.1"; 
    flavorDimension = "green" 
} 
two { 
    applicationId "com.app.blue.two" 
    versionCode 6 
    versionName "1.0.1"; 
    flavorDimension = "blue" 
} 
three { 
    applicationId "com.app.green.three" 
    versionCode 1 
    versionName "1.0.0.1"; 
    flavorDimension = "green" 
} 
four { 
    applicationId "com.app.blue.four" 
    versionCode 6 
    versionName "1.0.1"; 
    flavorDimension = "blue" 
} 

trong trường hợp này kích thước đại diện cho "loại" của ứng dụng, và sau đó là hương vị được nhiều hơn cho các tổ chức có thể được thêm vào.

** EDIT Tôi đã sai thiết lập cho gradle như đã chỉ ra ở đây là một sự miêu tả chính xác hơn về những gì tôi có

flavorDimensions "type", "organization" 

productFlavors { 

    blue { 
     applicationId "com.app.blue" 
     flavorDimension = "type" 
     versionCode 6 
     versionName "1.0.1"; 
    } 
    red { 
     applicationId "com.app.red" 
     flavorDimension = "type" 
     versionCode 1 
     versionName "1.0.0.1"; 
    } 

    company1 { 
     flavorDimension = "organization" 
    } 
    company2 { 
     flavorDimension = "organization" 
    } 
} 

Cho đến nay công trình này, Vì vậy, tôi có thể tạo các thư mục nguồn java cho chuyển đổi qua lại các loại , nhưng nếu tôi muốn các tệp cấu hình cụ thể của tổ chức, tôi có tạo các thư mục nguồn java cho từng tổ chức không?

Trả lời

28

Tôi nghĩ bạn hiểu sai khái niệm về flavorDimension.

Hương vịDimension giống như loại hương vị và mọi kết hợp của một hương vị từ mỗi thứ nguyên sẽ tạo ra một biến thể.

Trong trường hợp của bạn, bạn phải xác định một hương vịGiới hạn có tên "loại" và một tham số khác có tên "tổ chức". Nó sẽ tạo ra, cho mỗi hương vị trong kích thước "tổ chức" tất cả có thể "loại" (hoặc công thức kép: cho mỗi "loại" nó sẽ tạo ra một biến thể cho mỗi tổ chức).

Kích thước hương vị xác định sản phẩm cartesian sẽ được sử dụng để tạo các biến thể.


EDIT: Tôi sẽ cố gắng để minh họa với mã giả gradle:

Hãy xác định một số "loại": đồng, bạc và vàng

Hãy xác định một số tổ chức: customerÃ, customerB, customerC

Tất cả những người đang có productFlavors, nhưng họ thuộc về 2 khía cạnh khác nhau:

flavorDimensions("type_line", "organization") 
productFlavors { 

    gold { 
     ... 
     dimension = "type_line" 
    } 
    silver { 
     ... 
     dimension = "type_line" 
    } 
    bronze { 
     ... 
     dimension = "type_line" 
    } 

    customerA { 
     ... 
     dimension = "organization" 
    } 
    customerB { 
     ... 
     dimension = "organization" 
    } 
    customerC { 
     ... 
     dimension = "organization" 
    } 

} 

cấu hình này sẽ sản xuất 18 (3 * 3 * 2) biến thể (nếu bạn có tiêu chuẩn 2 loại xây dựng: gỡ lỗi và phát hành):

vàng customerÃ-debug; gold-customerA-release; gold-customerB-debug; gold-customerB-release; sửa lỗi vàng-customerC; gold-customerC-release;

silver-customerA-debug; silver-customerA-release; silver-customerB-debug; bạc-customerB-phát hành; silver-customerC-debug; bạc-customerC-phát hành;

... (tương tự đối với đồng)

Lưu ý rằng tên của thứ nguyên hoàn toàn tùy ý và không ảnh hưởng đến tên biến thể.

Kích thước hương vị rất mạnh mẽ, nhưng nếu bạn sử dụng quá nhiều: kết quả là sự bùng nổ theo số mũ của số biến thể (tác vụ xóa bài đăng có thể hữu ích để xóa biến thể vô nghĩa hoặc không có ý nghĩa)

+0

có ý nghĩa hơn một chút nhưng mỗi hương vị sản phẩm cần xác định một hương vịDimension, vì vậy nếu mỗi hương vị là sự kết hợp của cả hai cách hoạt động như thế nào – Brian

+0

Tôi đoán thực sự những gì im đang cố gắng làm là hương vị phụ theo ý nghĩa – Brian

+0

xem chỉnh sửa của tôi. Nó minh họa ý tưởng. – ben75

Các vấn đề liên quan