2015-04-21 14 views
7

Io uso Logger biblioteca di mio sviluppo, e mi configurarlo nella mia classe di applicazione:Android: come impostare un valore Gradle da un enum sapere

@Override 
public void onCreate() { 
    super.onCreate(); 
    sInstance = this; 

    Logger.init(BuildConfig.LOGGER_TAG_NAME) 
      //.setMethodCount(3)   // default 2 
      //.hideThreadInfo()    // default shown 
      .setLogLevel(LogLevel.NONE); // default LogLevel.FULL 

Loglevel è un enum (in libreria Logger) .

Ma voglio automaticamente impostare il livello di registro in base al mio tipo di build gradle; a fare qualcosa di simile:

buildTypes { 

    debug { 
     debuggable true 

     buildConfigField "enum", "LOGGER_LEVEL", LogLevel.FULL 
    } 

    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

     buildConfigField "enum", "LOGGER_LEVEL", LogLevel.NONE 
    } 
} 

poi:

Logger.init(BuildConfig.LOGGER_TAG_NAME) 
      //.setMethodCount(3)   // default 2 
      //.hideThreadInfo()    // default shown 
      .setLogLevel(BuildConfig.LOGGER_LEVEL); // default LogLevel.FULL 

Ma non funziona:

Error:(31, 0) No such property: NONE for class: org.gradle.api.logging.LogLevel

E 'lo stesso con il valore enum PIENO.

Grazie per il vostro aiuto ragazzi!

risposta

16

è necessario includere il pacchetto e nome della classe in entrambi, tipo di proprietà e valore:

buildTypes { 
    debug { 
     debuggable true 
     buildConfigField "com.orhanobut.logger.LogLevel", "LOGGER_LEVEL", "com.orhanobut.logger.LogLevel.FULL" 
    } 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     buildConfigField "com.orhanobut.logger.LogLevel", "LOGGER_LEVEL", "com.orhanobut.logger.LogLevel.NONE" 
    } 
} 
+0

Perfetto! Grazie Gero! – anthony

Problemi correlati