Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Replu
2 / 5 / 0
Регистрация: 08.01.2011
Сообщений: 87
#1

Собрать проект через консоль - Программирование Android

27.04.2014, 14:41. Просмотров 1866. Ответов 13
Метки нет (Все метки)

Как можно cобрать проект в .apk через консоль? (Проект из Android Studio)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 14:41     Собрать проект через консоль
Посмотрите здесь:

Собрать проект в lib - Программирование Android
Есть проект который необходимо подключать к другим проектам Подскажите как собрать проект в либу и подключить его к другому проекту?

После подключения ListViewAnimations не могу собрать проект - Программирование Android
Добрый день! Решил попробовать применить чужую библиотеку ListViewAnimations https://github.com/nhaarman/ListViewAnimations Дока...

Собрать проект использующий базу данных в apk - Программирование Android
Есть рабочий проект. При запуске через Run в android studio проект запускается на телефоне, но иконка в меню не отображается. Если смотреть...

Подключить проект с Github через gradle - Программирование Android
Допустим на гитхабе есть какой то проект или библиотека и я хочу ее импортировать. И вот если этот проект скачивать от туда потом открывать...

Genymotion не видит мой проект при запуске через itelij IDEA - Программирование Android
Пользуюсь intelij Idea установил туда плагин Genymotion и не знаю как запустить через него мой проект .Значок genymotion есть при...

Собрать строку IPv4 из массива - Программирование Android
Доброго времени суток. Понадобилось мне из массива вида собрать один стринг вида "127.0.0.1". Документация гугл и Java в целом...

Не могу собрать приложение в android studio 2.1 - Программирование Android
Всем привет. Вообщем установил я android studio 2.1,но при сборе приложения даже(Hello World) с родной формой гугл,выдает 61 ошибку.А при...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.04.2014, 15:49     Собрать проект через консоль #2
Присоединяюсь к вопросу! Сам давно интресуюсь, но пока безуспешно...

Раньше было ANT. Где-то слышал что поддержка закончилась... Добивался компиляции, но результат APK-файл был битый...

Есть вроде команды для Grandle, но не пробовал... и мой проект в "старой" схеме IDEA... Находил примеры bat-файлв для грандле.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
27.04.2014, 16:10     Собрать проект через консоль #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
если проект из AS, то все просто:
в папке с проектом выполнить в консоли
graldew assembleDebug
или
assembleRelease
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.04.2014, 20:53     Собрать проект через консоль #4
мне не помогло...
Во первых обычный graldew не нашло... нашел поиском здесь(у Вас опечатка?):
android-studio... \sdk\tools\templates\gradle\wrapper\gradlew.bat assembleDebug
android-studio... \plugins\android\lib\templates\gradle\wrapper\gradlew.bat assembleDebug
но... долго думает и выдает ошибку! похоже ОБЯЗАТЕЛЬНО должен перевезти проект в грандле
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
27.04.2014, 22:04     Собрать проект через консоль #5
Tester64, gradlew.bat лежит в папке проекта.
я же написал
Цитата Сообщение от Netscape Посмотреть сообщение
если проект из AS
к любому проекту можно написать билд файл.
вариант для ленивых - экспортнуть из еклипса.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.04.2014, 22:39     Собрать проект через консоль #6
Цитата Сообщение от Netscape Посмотреть сообщение
вариант для ленивых - экспортнуть из еклипса.
И здесь начинаются проблемы...
1) Мой Эклипс умер - перешел на AS. Заново загонять его в еклипс что-бы сделать экспорт? Насколько я помню там проблемы с "обратной" совместимостью - перешел на студию - это навсегда... Мой проект после обработки (импорт в) студией перестал собираться в эклипсе...
2) когда-то пробовал... "экспорт для ант"... и... получил 2-3 файла в корне, которые не помогили... ant.properties local.properties project.properties default.properties... кто-то из них
3) gradlew.bat у меня нигде не лежит... в проекте ничего подобного нет... возможно если его перевести на грандле, появится, но я уже пол года усиленно отказываюсь от настойчивых предложений студии... боюсь! проект уже несолько месяцев на стадии "еще чуть-чуть и закончу" и заводить сейчас лишние проблемы (путем порчи/перемешивания папок и исхоников) не хочу...
Цитата Сообщение от Netscape Посмотреть сообщение
к любому проекту можно написать билд файл.
можно... но как? в чужих проектах (github) находил десятки подобных файлов... штуки 2-3 из них даже (после прописывания реальных путей) заработали. Но после часов 20 "танцев с бубном" успешно запустил у себя и получил битый apk файл - внешне нормальный архив слегка другого размера (+/-5%) не опознаваемый устройством...

Может Ваша инструкция все-таки исключительно под грандле? Помню зимой Вы пытались на него перейти...
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
27.04.2014, 23:09     Собрать проект через консоль #7
Цитата Сообщение от Tester64 Посмотреть сообщение
Помню зимой Вы пытались на него перейти...
Ну я попытался и перешел, чему очень рад.
Цитата Сообщение от Tester64 Посмотреть сообщение
заводить сейчас лишние проблемы (путем порчи/перемешивания папок и исхоников) не хочу...
я тоже так думал, но все не так страшно.
а как AS собирает проект без грейдла?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
28.04.2014, 00:48     Собрать проект через консоль #8
Цитата Сообщение от Netscape Посмотреть сообщение
а как AS собирает проект без грейдла?
Пока собираю только из среды! Уже почти год только этим пользуюсь...

Цитата Сообщение от Netscape Посмотреть сообщение
я тоже так думал, но все не так страшно.
Немного напрягает назойливость студии...
1) студия пытается ВСЕ проекты импортировать как грандле. Боюсь что если не понравится назад не вернусь (как было с еклипсом). Прийдется вручную искать лишние файлы, возможно даже вручную править файлы настроек.
2) пытается все импортируемые проекты скопировать в "соседнюю папку". Причем по умолчанию в корень workspace. А при моей вложености проектов это смертельно. Раньше просто менял структуру текущей папки ДОБАВЛЯЯ в нее свои настройки...
3) после импорта папки явно меняют свою вложеность. Куда-то перекидывает папку SRC и ресурсы в свои подпапки... А это настораживает... Кто-то говорил что это не обязаельно, но нужно убить кучу времени что-бы разобраться...
4) когда-то перейдя на студию часть кода пришлось подправить - выдавало ошибки редактор кода или компиляция. Если подобное прийдется пройти при переходе на грандле, то это сильно усложнит возврат через неделю-месяц если я "убедюсь" что совершил ошибку...

А в чем преимущество грандле??? Раскажите как пользователь.... Навязчивая рекламма студии достала и заставляет настаивать на "традициях". Новое - враг проверенного.... Конечно хотелось бы собирать в консоли, но жил ведь без этого... Может минусы перевешивают...
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
28.04.2014, 09:25     Собрать проект через консоль #9
http://habrahabr.ru/post/210584/
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
28.04.2014, 13:55     Собрать проект через консоль #10
Tester64, очень удобно подключать сторонние либы, сборка релизной и дебаг версий в один клик, куча плагинов - за счет этого деплой на тест-сервер тоже в один клик, в команде нет никаких проблем с импортом проектов (с эклипсом проблемы были), шикарный синтаксис билд файлов. Мейвен и ант я так и не освоил, с грейдлом разобрался очень быстро.
Replu
2 / 5 / 0
Регистрация: 08.01.2011
Сообщений: 87
28.04.2014, 19:23  [ТС]     Собрать проект через консоль #11
Столкнулся с проблемой в Ubuntu. При запуске скрипта gradlew пишет ошибку:
gradlew: 158: gradlew: Syntax error: "(" unexpected

Содержимое gradlew:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#!/usr/bin/env bash
 
##############################################################################
##
##  Gradle start up script for UN*X
##
##############################################################################
 
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
 
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
 
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
 
warn ( ) {
    echo "$*"
}
 
die ( ) {
    echo
    echo "$*"
    echo
    exit 1
}
 
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
  CYGWIN* )
    cygwin=true
    ;;
  Darwin* )
    darwin=true
    ;;
  MINGW* )
    msys=true
    ;;
esac
 
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
 
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
    else
        PRG=`dirname "$PRG"`"/$link"
    fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
 
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
 
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
 
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
    MAX_FD_LIMIT=`ulimit -H -n`
    if [ $? -eq 0 ] ; then
        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
            MAX_FD="$MAX_FD_LIMIT"
        fi
        ulimit -n $MAX_FD
        if [ $? -ne 0 ] ; then
            warn "Could not set maximum file descriptor limit: $MAX_FD"
        fi
    else
        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
    fi
fi
 
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
 
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
 
    # We build the pattern for arguments to be converted via cygpath
    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
    SEP=""
    for dir in $ROOTDIRSRAW ; do
        ROOTDIRS="$ROOTDIRS$SEP$dir"
        SEP="|"
    done
    OURCYGPATTERN="(^($ROOTDIRS))"
    # Add a user-defined pattern to the cygpath arguments
    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
    fi
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
 
        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac
fi
 
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
    JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
 
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
29.04.2014, 02:14     Собрать проект через консоль #12
Цитата Сообщение от kirawa Посмотреть сообщение
http://habrahabr.ru/post/210584/
Пример не заработал! выдало ошибки сборки... Попробовал исправить, но не получилось...

Netscape Спасибо за внятный ответ... ничего по грандле путного не находил - одну рекламу... Попробую перейти...
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
29.04.2014, 07:43     Собрать проект через консоль #13
я вообще ни понимаю зачем это надо. Ради фана?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2014, 12:04     Собрать проект через консоль
Еще ссылки по теме:

Как собрать android приложение из исходников? - Программирование Android
Здравствуйте. Скачал исходный код приложения на просторах гитхаба. https://github.com/afollestad/material-camera. В папке есть файл...

Не работает вывод в консоль - Программирование Android
День добрый. народ пробую в коде поставить System.out.print("sdsdfgh"); чтобы вывести хотя бы пробно посмотреть, но в консоли не...

Написать хелловорлд для Android в блокноте и собрать в apk? - Программирование Android
Цель - написать приложение хелловорлд, в блокноте, создав минимум файлов и написав минимум кода. Можно на жаве, но на С++ даже интереснее. ...

Передать файл через socket или через ftp api - Программирование Android
Посоветуйте как поступить: Есть файл на устройстве его нужно загрузить на сервер. 1 Загружать через socket, создав на сервере...

Пробный проект - Программирование Android
Создаю проект как указано здесь: http://www.youtube.com/watch?v=VrDGf5h6iwA Добавляю на экран к нопку. по умолчанию кнопка имеент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
29.04.2014, 12:04     Собрать проект через консоль #14
kirawa Это полезно!
1) это ВСЕГДА быстрее чем из среды
2) не надо нажимать кнопки в глубинах меню среды пройдя несколько "визардов"
3) можно собирать с разными параметрами просто выбрав батник


я хочу использовать это для поддержки 3х "веток" проекта - альфа-бетта-релиз. В 3х папках.
Yandex
Объявления
29.04.2014, 12:04     Собрать проект через консоль
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru