2016-03-16 3 views
10

Каждый раз, когда я выпускаю свое приложение, я меняю все мои строки и некоторые ключи от тестирования до производства. Как я это делаю, просто комментируйте тестовые строки перед выпуском. Есть ли лучший способ обработки строк на основе типа сборки?Отдельные строковые значения Android для версий выпуска и отладки

+3

http://stackoverflow.com/questions/17197636/is-it-possible-to-declare-a-variable-in-gradle-usable-in-java – CommonsWare

+0

искал этот .. отличный вопрос и ответ .. – DJphy

+0

Не делайте этого. Шансы иметь неправильные строки в производственном коде с вашим подходом довольно высоки. Сделайте это так: http://developer.android.com/tools/building/configuring-gradle.html –

ответ

11

Предполагая, что вы используете Android Studio, по умолчанию система создает базовый вкус release и debug. Так что если вы добавите папку debug и release в папку app/src вашего проекта, вы можете объявить здесь отдельные значения.

Так что ваша структура должна быть такой:

project 
    -app 
    -src 
     -debug 
     -java 
      ... 
     -res 
      -values 
      -strings.xml 
     -release 
     -java 
      ... 
     -res 
      -values 
      -strings.xml 
     -main 
     -java 
      ... 
     -res 
      -values 
      -strings.xml 

Я хотел бы также добавить, что если у вас есть строка, которая не определена ни в одном из папки debug или release, что он будет Откат к вашей main папка.

+0

поэтому каждый раз, когда я работаю над чем-то, я должен обновлять все 3 папки? – spaceMonkey

+0

как разделить отдельные строки URL в отдельном «url-strings.xml», а затем «project/app/src/main/res/values ​​/ strings.xml» 'project/app/src/debug/res/values ​​/ url-strings.xml' 'project/app/src/release/res/values ​​/ url-strings.xml' – k3b

+0

Нет, у вас просто есть приложение в папке' main' по умолчанию. Любой ресурс, который должен быть другим в сборках 'debug' или' release', вы просто добавляете в файл strings.xml (или как @ k3b упоминается другой файл). Android Studio всегда будет возвращаться в папку 'main', чтобы вы могли иметь 1 строку url в папках' debug'/'release', и это займет их только. –

1

Просто сделайте два аромата в build.gradle. Затем два каталога, опять же как указано в ссылке (developer.android.com/tools/building/configuring-gradle.html). Так как вам нужно только строки, которые будут изменены, просто скопировать strings.xml файлы в новых каталогах (т.е. DEV и производство) Удалить оригинал strings.xml

И это так. :)

Не нужно перемещать файлы java или другие файлы макета.

Короче говоря, оставьте все в своей «основной» директории, которая должна быть последовательной во всех вариантах сборки. Переопределите значения, зависящие от стиля сборки, в соответствующий каталог.

+0

создавать ароматы? вы имеете в виду «типы сборки» или «ароматы продукта»? – spaceMonkey

+0

извините. да вкусы продукта, такие как тестирование и производство –

Смежные вопросы