2015-02-28 2 views
5

Я развиваюсь в eclipse, используя ADT для android.
В моем приложении у меня есть некоторые константы, которые помогают мне легко отлаживать мое приложение.
В качестве примера у меня есть:
public static final boolean DEBUG_TOAST_LOGS = true;
, которые помогают мне поджарить несколько журналов на экране.
Каждый раз, когда я собираюсь создать выпуск, мне нужно пройти через мои константы и установить их значения в соответствии с тем, что подходит для выпуска, что как-то болезненно.
Теперь я хочу создать свое приложение, используя две конфигурации: один для режим отладки, а другой для режим освобождения. Режим выпуска должен устанавливать мои константы в соответствующие значения. Как я могу это сделать? Каково ваше предложение? Каков наилучший способ удовлетворить мои потребности?

Любая помощь будет оценена по достоинству.Изменение постоянных значений при создании выпускной версии

ответ

9

Я не уверен, что вы используете Gradle как свою систему сборки. Если вы это сделаете, вы можете установить конкретные ресурсы типа сборки, например. значение boolean debug будет true для типа сборки отладки и false для типа сборки выпуска.

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

@ решение HIDRO в порядке, но требует ненужной getResources()... вызова каждый раз, когда вы хотите получить доступ к значению.

Там другая возможность:

build.gradle

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

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

}

Затем, в вашем коде, вы можете написать:

if (BuildConfig.DEBUG_TOAST_LOGS) { 
    // ... enjoy your toasts ... 
} 
Смежные вопросы