2015-04-27 19 views
7

biri BuildConfig.DEBUG alan yerine boolean değişmezleri true veya false birini kullanarak Boolean.parseBoolean(String) çağrısı kullanarak başlatılır görebilirsiniz eklentisi Android Studio ve Gradle tarafından oluşturulan BuildConfig sınıfa bakarak. Ben özel Gradle kullanarak özelliklerini inşa eklediğinizdeNeden BuildConfig sınıfı, literal değerler yerine Boolean.parseBoolean() kullanıyor?

ben böyle yapmak basitçe olacaktır:

android { 
    buildTypes.debug.buildConfigField 'boolean', 'SOME_SETTING', 'true' 
} 

Ama üretilen BuildConfig bakarak Google DEBUG bayrağıyla farklı bir yaklaşım almıştır söylüyor:

public final class BuildConfig { 
    public static final boolean DEBUG = Boolean.parseBoolean("true"); 

    // more fields here 

    // Fields from build type: debug 
    public static final boolean SOME_SETTING = true; 
} 
, literals yerine kullanmanın yararı nedir?
+2

Soruyu sorup aynı saniyede cevapladınız mı? Başarım açıldı. Süper insan rozetini talep et. – Rajesh

+0

http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ –

+0

Soru sorduğunuzda bunun için bir onay kutusu vardır. Sadece arkadaşlarımla paylaşmayı istedim ;-) –

cevap

15

BuildConfig sınıfındaki Boolean hazır öğeleri, kodunuzda kullanıldığında IDE uyarıları üretecektir (en azından Android Studio içinde). Örneğin, bir Boole ifadesinde kullanıldığında, Android Stüdyosu (yanlışlıkla) boole ifadesini basitleştirmeyi önerir (çünkü sabit değer her zaman aynıdır) (geçerli yapı varyantı için). Android Studio BuildConfig.SOME_SETTING içindeki nihai değer diğer yapı varyantları için farklı olabileceğini bilmediği için

Android Studio producing code warning because of missing build configuration knowledge

Bu uyarı sadece.

böyle bir IDE yorumunu ekleyerek bu özel uyarıyı görmezden Android Studio söyleyebilir temiz ve uyarıları serbest kodunu tutmak için: Yine bu koda biraz gürültü katacak

Add code comments to ignore IDE warnings

Ama ve okunabilirliği azaltın. Sabit alanınızı başlatmak için Boolean.parseBoolean(String) yöntemini kullanarak, aslında artık Boole ifadelerinizi tamamen analiz edemeyecek, böylece artık uyarı üretmeyecek olan Android Studio'yu kandırabilirsiniz. o uyarıların önemli kod analizi ve üretimini kapatmadan, kodunuz temiz ve okunabilir tutar olarak

Use parseBoolean(String) to prevent IDE warnings

Bu yaklaşım

, çok faydalıdır.

+1

Belki bir şey eksik ama parseBoolean kullanarak bir BuildConfig değeri bildirmek için build.gradle bir tam olarak ne yapar? – Tunga

+2

@Tunga, 'configConfigField' boolean ',' SOME_FLAG ',' defaultConfig''ınızın içinde veya herhangi bir aroma veya yapı tipi yapılandırmasının içeriklerini takip etmeyi deneyin. –

+0

Ah, muhtemelen dış tırnakları kaçırıyordum, teşekkürler. Sorunumu manifest yerine kullanarak çözdüm. – Tunga

İlgili konular