2015-04-21 6 views
7

Ich benutze Logger Bibliothek in meiner Entwicklung, und ich konfigurieren es in meiner Anwendungsklasse:Android: Wie ein gradle Wert von einem Know-Enumeration setzen

@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 ist eine Enumeration (in Logger-Bibliothek) .

Aber ich möchte automatisch den Log-Level nach meinem Build-Typ festlegen; etwas zu tun, wie folgt aus:

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 
    } 
} 

dann:

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

Aber es funktioniert nicht: das gleiche mit FULL Enum-Wert

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

Es ist.

Vielen Dank für Ihre Hilfe Jungs!

Antwort

16

Sie müssen das Paket und den Klassennamen in beiden, Objekttyp und Wert sind:

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

Perfect! Danke Gero! – anthony

Verwandte Themen