2014-06-26 20 views
11

Tôi rất háo hức về khả năng mới của trình giữ chỗ tệp kê khai trong Gradle + Android Build. Tôi đã tìm thấy trong tài liệu gradle mà tôi có thể chỉ định giữ chỗ của riêng tôi như thế này:Android - Trình giữ chỗ kê khai cho các loại xây dựng khác nhau

productFlavors { 
    free { 
    } 
    pro { 
     manifestPlaceholders = [ activityLabel:"proName" ] 
    } 
} 

Nhưng tôi muốn có một placeholder phụ thuộc vào build kiểu chứ không phải trên hương vị sản phẩm. Khi tôi chèn đặc tả trình giữ chỗ đó vào cài đặt loại xây dựng, nó sẽ không có hiệu lực. Bạn có biết làm thế nào để đạt được điều này? Bởi vì có vẻ như tôi ngu ngốc có ba loại xây dựng và ba hương vị liên kết với nó. Cảm ơn

+0

Tôi không chắc chắn về trường hợp của bạn nhưng có thể liên kết này sẽ giúp ích? http://stackoverflow.com/questions/10887837/how-to-specify-spring-propertyplaceholderconfig-values-in-gradle-build –

+0

Vì tôi không làm việc này trực tiếp và không có thời gian để kiểm tra nhiều theo những cách khác nhau, cuối cùng tôi đã quyết định sao chép Manifest của mình trong các thư mục kiểu build khác nhau và loại bỏ (gần như) mọi thứ trừ những gì tôi muốn thay đổi (Trong trường hợp này là khóa API của Google Maps). Tôi đã sử dụng phương pháp "công cụ: thay thế" để đảm bảo rằng tôi đã giữ những gì tôi muốn. Không phải là giải pháp tốt nhất mà là một công việc xung quanh làm việc cho tôi ... – Kasium

+1

Dường như một lỗi, điều đó sẽ được khắc phục: https://code.google.com/p/android/issues/detail?can=2&start= 0 & num = 100 & q = & colspec = ID% 20Type% 20Status% 20Owner% 20Summary% 20Stars & groupby = & sort = & id = 72829 – OriolJ

Trả lời

4

Bắt đầu từ hôm nay với plugin gradle 0.13.0 đã hoạt động.

7

Đây là giải pháp của tôi cho hương vị sản phẩm khác nhau:

build.gradle:

productFlavors { 
normal { 
    applicationId "mobi.cwiklinski.urc" 
    buildConfigField "String", "providerAuthority", "\"mobi.cwiklinski.urc.provider\"" 
    resValue "string", "authorities", "mobi.cwiklinski.urc.provider" 
} 
adfree { 
    applicationId "mobi.cwiklinski.urc.adfree" 
    buildConfigField "String", "providerAuthority", "\"mobi.cwiklinski.urc.adfree.provider\"" 
    resValue "string", "authorities", "mobi.cwiklinski.urc.adfree.provider" 
} 

}

AndroidManifest.xml

Và đó là tất cả - trong khác nhau hương vị sản phẩm bạn sẽ nhận được giá trị tài nguyên khác nhau.

+0

Vâng, cảm ơn câu trả lời, nhưng nó không liên quan gì đến câu hỏi của tôi .. tôi đã hỏi liệu bằng cách nào đó tôi có thể sử dụng trong các loại xây dựng và không có trong hương vị – Billda

+0

Bạn có thể kết nối hai thứ này - bạn sẽ nhận được bốn APK và chọn hai APK bạn muốn ... –

+0

Tôi không biết resValue, nó thực sự hữu ích và có thể được sử dụng thay cho ' manifestPlaceholders' mà tôi không thể làm cho chúng hoạt động. – tasomaniac

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