, ben ürün tatlar kurdunuz:Android, Gradle, ürün lezzetleri ve <code>build.gradle</code> yılında tezahür
productFlavors
{
AlternateFlavour
{
applicationId "com.myapp.alternateflavour"
}
}
Sonra sourceSets bölümünde, ben bu tatlar için farklı bir kaynak, varlık ve tezahür dizinleri kullanın:
Şimdiye kadar tamam OK. Bu bildirim olarak kısmen otomatik olarak bir tat, tarafından kullanılan, sahip aşağıdaki gibidir:<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.myapp"
android:versionCode="1010001"
android:versionName="V1.1.0.1" >
ancak kök projesinde orijinal manifest
olup:<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.myapp"
android:versionCode="1010000"
android:versionName="V1.1.0.DEBUG" >
Error:
Attribute [email protected] value=(1010001) from AndroidManifest.xml:4:5-28
is also present at AndroidManifest.xml:4:5-28 value=(1010000).
Attributes of <manifest> elements are not merged.
Neden merg çalışıyor: Bu Gradle başarısız olmasına neden olur Ben orijinal manifest ile e, ben belirttiğim zaman başka bir yerde görünmelidir?
Ve bunu nasıl durdurabilirim?
Bazılarının neden bu şekilde yaptığımı veya gerçekten de önerilen aroma proje yapısını kullanmadığımı sorgulayacağını umuyorum. Eh, Gradle dışında kullanmak için normal bir manifestoya ihtiyacım var. Eclipse'den dağıtmak için (her seferinde bir şey lütfen!) ve ayrıca oluşturma işlemiyle enjekte edilecek sürümlere de ihtiyacım var.
Her şeyden önce, burada bir sürü lezzet var - sadece verilen örneği basit tutmaya çalıştım. IDE dağıtımı tarafından kullanılan özellik olduğundan, orijinal manifestten öznitelikleri kaldırmayla alamıyorum (AFAIK). Ancak, öznitelik olmadan üçüncü bir tane oluşturabilirim ve Gradle'ın bunu varsayılan olarak kullanması gerekir. Aşırı görünüyor! –
@RobPridham: "IDE dağıtımı tarafından kullanılan budur" - Android Studio'yu kullanıyorsanız, Varyantları Oluştur aracı, IDE tarafından kullanılanı denetler. – CommonsWare
Gerçekten. Ne yazık ki - maalesef - hala bu geliştirme için Eclipse & ADT kullanarak, çeşitli iyi (zamanla daha az iyi) nedenlerden dolayı. –