2015-02-28 14 views
5

Sto sviluppando in Eclipse utilizzando ADT per Android.
Nella mia applicazione ho alcune costanti che mi aiutano a eseguire il debug della mia app facilmente.
Come esempio:
public static final boolean DEBUG_TOAST_LOGS = true;
che mi aiutano a tostare alcuni registri sullo schermo.
Ogni volta che intendo creare una versione, devo passare attraverso le mie costanti e impostare i loro valori su ciò che è appropriato per l'edizione di rilascio, che è in qualche modo doloroso.
Ora quello che voglio è un modo per costruire la mia app, utilizzando due configurazioni: una per la modalità di debug e l'altra per la modalità di rilascio . La modalità di rilascio dovrebbe impostare le mie costanti sui valori appropriati. Come posso farlo? Qual è il tuo suggerimento? Qual è il modo migliore per realizzare il mio bisogno?

Qualsiasi aiuto sarebbe apprezzato.Modifica valori costanti durante la creazione di un'edizione release

risposta

9

Non sono sicuro se si utilizza Gradle come sistema di generazione. Se lo fai, puoi impostare risorse specifiche del tipo di build, ad es. un valore booleano debug sarà true per il tipo di build di debug e false per il tipo di build di rilascio.

build.gradle

android { 

    defaultConfig { 
     ... 
     resValue "bool", "debug", "true" 
    } 

    buildTypes { 
     release { 
      ... 
      resValue "bool", "debug", "false" 
     } 
    } 

    ... 
} 

Application.java

public class Application extends android.app.Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     if (getResources().getBoolean(R.bool.debug)) { 
      ... // debug logic here 
     } 
     ... 
    } 
} 
4

@ La soluzione di Hidro va bene, ma richiede una inutile getResources()... chiamata ogni volta che si desidera accedere al valore.

C'è

un'altra possibilità:

build.gradle

android { 
    buildTypes { 
    debug { 
     buildConfigField "boolean", "DEBUG_TOAST_LOGS", "true" 
    } 

    release { 
     buildConfigField "boolean", "DEBUG_TOAST_LOGS", "false" 
    } 
} 

}

Poi, nel codice, è possibile scrivere:

if (BuildConfig.DEBUG_TOAST_LOGS) { 
    // ... enjoy your toasts ... 
} 
Problemi correlati