2013-11-15 39 views
94

Sadece Android studio hakkında garip bir şey keşfettim: build.gradle dosyasında AndroidManifest.xml dosyasında belirtilenleri geçersiz kılan bazı yapılandırma seçenekleri var.Android studio: neden AndroidManifest.xml ve build.gradle'da minSdkVersion ve targetSdkVersion belirtiliyor?

Örneğin

, ben build.gradle aşağıdaki satırları vardı:

AndroidManifest.xml karşılık gelen etiketi baskın oldu
android { 
    compileSdkVersion 18 
    buildToolsVersion "18.1.1" 

    defaultConfig { 
     minSdkVersion 10 
     targetSdkVersion 10 
    } 
... 
} 

: Gerçekten Aynı ayarlar yayılmış olması sevmiyorum

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="8"/> 

iki farklı dosyada, bu yüzden ya build.gradle ya da AndroidManifest.xml'dan güvenli bir şekilde kaldırabileceğimi ve onu saklamanın daha mantıklı olup olmadığını merak ediyorum.

cevap

97

Gradle, manifest değerlerini geçersiz kılar ve manifest yerine build.gradle dosyasını güncellemeyi tercih ederim. Muhtemelen bu Gradle kullanarak doğru yoldur. Gradle, bir IDE ile kontrol edilebilen ürün aromalarını destekler ve bu lezzetler, Manifest benzeri paket ismimiz, sürüm kodumuz, sürüm adı, hedef SDK ve diğer birçok ürün çeşidini değiştirebilir. Daha sonra Android Studio'da bir tıklamayla birçok özelliği değiştirebilir ve başka bir apk oluşturabilirsiniz.

Bildirimi olduğu gibi bırakabilir ve tüm yapılandırmaları build.gradle içinde yapabilirsiniz. Bildirimin yanı sıra sürüm kodlarından

'u güvenle kaldırabilirsiniz.

+3

Herkesin böyle bir şekilde oluşturduğu bir APK'yı açmak için apktool kullanırsanız, AndroidManifest'te minSdkVersion'ı görmeyeceksiniz. Nereye gittiğini bilmiyorum, ama doğru olanı yapar (Google Play'e yükleyerek onayladım)! –

+6

Garip. Görünüşe göre, Google, minSDK’ya, uygulamamızın hangi API’yı kullandığını belirliyor. Benim app/build.gradle benim app minSDK = Android 1.6 olduğunu, Google Play'de Android 2.2 olması için minSDK belirtir. Ve evet, decompiled AndroidManifest.xml, minSDK bilgisi içermiyor. Bence bu bir problem, çünkü bizi Android 1.6 cihazlarını da desteklemeye zorluyor. – sancho21

+0

Burada kenar çubuğu: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html, Play'in bir şekilde manifestoyu kullandığını ileri sürüyor. Belki de, APK yapımı öncesinde sahnelerin arkasına yeniden yerleştirilir? – jordanpg

İlgili konular