Зависание сборки мобильного приложения apk

1. extalionos 114 03.09.18 16:26 Сейчас в теме
Добрый день.

Обновляю 1С: Мобильная касса до 2.18.2.0, ранее использовал мобильную платформу 8.3.9.91 на Android SDK (версия 25-) , приложение собралось после обновления, но есть ошибки, например при создании вида оплаты и подключении оборудования.

Далее попробовал собрать с помощью мобильной платформы 8.3.12.67 с помощью Android SDK (версия 26+), Android API Level : 28.

Installed packages:

Path | Version | Description | Location

------- | ------- | ------- | -------

build-tools;27.0.3 | 27.0.3 | Android SDK Build-Tools 27.0.3 | build-tools\27.0.3\

build-tools;28.0.2 | 28.0.2 | Android SDK Build-Tools 28.0.2 | build-tools\28.0.2\

ndk-bundle | 17.1.4828580 | NDK | ndk-bundle\

patcher;v4 | 1 | SDK Patch Applier v4 | patcher\v4\

platform-tools | 28.0.1 | Android SDK Platform-Tools | platform-tools\

platforms;android-27 | 3 | Android SDK Platform 27 | platforms\android-27\

platforms;android-28 | 6 | Android SDK Platform 28 | platforms\android-28\

tools | 26.1.1 | Android SDK Tools 26.1.1 | tools\

Начинается сборка ARM, в папке Temp вижу появление файлов проекта и Gradle, далее черно окно зависает, счетчик продолжает работу и так до бесконечности. Закрываю окно см. журнал сборки ниже.

Запускал сборку 1С от имени администратора, антивирусов на машине нет. Папку Temp перед каждой сборкой чистил. Пробовал на другом компьютере, аналогичная проблема. Пробовал тестовую мобильную платформу 8.3.12.83 - тоже самое.

Компьютер: W8.1 64, 12 Гб оперативной памяти, i5. В партнерке обсуждался подобный вопрос о недостаточности оперативной памяти, как видите у меня ее предостаточно.

Журнал сборки ARM в файле.
Прикрепленные файлы:
log.txt
Вознаграждение за ответ
Показать полностью
Найденные решения
12. o4karek 04.09.18 16:12 Сейчас в теме +1 $m
(10) надо в сборщике поискать по "org.gradle.jvmargs" - там код достаточно простой
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. o4karek 04.09.18 12:03 Сейчас в теме
(1) есть подозрение, что реальная ошибка вот тут:
To run dex in process, the Gradle daemon needs a larger heap.
It currently has 247 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to at least 1536 MB.
To do this set org.gradle.jvmargs=-Xmx1536M in the project gradle.properties.
For more information see docs.gradle.org/current/... »»

Судя по логу, у вас 32-разрядная Винда и сборщик выделяет в этом случае 1 Гигабайт кеша для Gradle.
Можно попробовать поставить в сборщике установку кеша в то значение, которое написано в ошибке (+десяток мегов) и посмотреть, что получится.
А потом уже разбираться с манифестом.
Если у сборщика установлен каталог кеша, то gradle не будет каждый раз скачивать свои потроха и сборка должна идти быстрее
10. extalionos 114 04.09.18 15:07 Сейчас в теме
(9) Не понятно где установить значение org.gradle.jvmargs=-Xmx1536M
12. o4karek 04.09.18 16:12 Сейчас в теме +1 $m
(10) надо в сборщике поискать по "org.gradle.jvmargs" - там код достаточно простой
14. extalionos 114 04.09.18 17:12 Сейчас в теме
(12) 1. Поставил 64 разрядную jdk была 32.
2. через командную строку добавил ndk-bundle
3. в конфигураторе в сборщике установил для 32 разрядной платформы 1С org.gradle.jvmargs=-Xmx3000M для 64 org.gradle.jvmargs=-Xmx6000M
Все собралось. Всем спасибо.
15. o4karek 04.09.18 17:24 Сейчас в теме
(14)1. без ndk вполне нормально собирает
2. эээ... боюсь, что установка 3 Гигов для 32-разрядной сборки может (!) привести к различным конфликтам - там всего около 3 гигов свободной памяти есть, на все
16. extalionos 114 04.09.18 18:52 Сейчас в теме
(15)все же ещё раз напишу, у меня windows 8.1 64
17. o4karek 04.09.18 18:58 Сейчас в теме
(16) я не про версию ОС (хотя в логе информация о другом говорит - строчка "Версия ОС")
я это написал как коментарий к вашему изменению параметров сборки для 32-разрядной версии. Ведь вы это зачем-то сделали?
18. extalionos 114 05.09.18 08:42 Сейчас в теме
(17)Да в логе стоит Windows x86, Microsoft Windows 8.1 version 6.3 (Build 9600), но думаю это у них воспринимается как 86_64, хотя странно. Сами манипуляции с платформами и разрядностью - просто попытки понять в чем тут дело. Однако для gradle, очевидно что если собирать с помощью платформы 1С 32, то в моем случае нужно более чем 1,5 Gb оперативной памяти, но не более чем (3,7), в случае если платформа 1С 64, то необходимо более чем 4 Gb. Опять же для моего компьютера W8.1 64, 12 Гб оперативной памяти.
19. o4karek 05.09.18 09:33 Сейчас в теме
(18) 1с выводит информацию об оси вполне корректно, вот пример с 64-битного сборщика:
[info] Версия ОС : Windows x86-64, Microsoft Windows 10 version 10.0 (Build 17134)

по остальному - ок, понял ваши действия
11. extalionos 114 04.09.18 15:19 Сейчас в теме
(9) Поставил 64 разрядную платформу 1С начала сборку получил следующую ошибку, какая-то беда с памятью
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/3.3/userguide/gradle_daemon.html.

FAILURE: Build failed with an exception.

* What went wrong:
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at https://docs.gradle.org/3.3/userguide/gradle_daemon.html
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
13. o4karek 04.09.18 16:14 Сейчас в теме
(11) Судя по вот этому тексту, не хватает оперативы:
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

К тому же неясно, как смогли 64-х разрядную 1с поставить на 32-разрядную Винду
2. Timur.V 80 04.09.18 10:24 Сейчас в теме
Error: There should only be a single <uses-sdk> element in the manifest: merge these together [MultipleUsesSdk]
<uses-sdk android:minSdkVersion="10"/>

У вас ошибки в файле манифесте
There should only be a single <uses-sdk> element in the manifest: merge these together [MultipleUsesSdk]

Может у вас два файла AndroidManifest в проекте?
Можно ещё скопировать весь проект, удалить весь код и пробовать скомпилировать. Т.е. проблема не в коде, а файле AndroidManifest.
3. Timur.V 80 04.09.18 10:28 Сейчас в теме
Можно ещё проверить наличие строки в файле AndroidManifest

<uses-sdk android:targetSdkVersion="10" android:minSdkVersion="7" />
4. extalionos 114 04.09.18 10:48 Сейчас в теме
(3)На сколько я понимаю или я ошибаюсь, проект собирается в папке Temp, в случае ошибки он очищается и не используется повторно при сборке. Где-то могу управлять настройками файла AndroidManifest? (с другой стороны можно управлять через сборщик приложений, но разве он не должен штатно работать).
5. Timur.V 80 04.09.18 10:56 Сейчас в теме
(4)
я где-то могу управлять настройками файла AndroidManifest?

Да, перед компиляцией там где-то настраиваются разрешения (доступ) вашей программы на устройстве пользователя.
Также указывается для каких устройств эта программа (версия андройда и т.д.) т.е. на каких устройствах она будет работать.
ссылка1
ссылка2
ссылка3
6. extalionos 114 04.09.18 11:10 Сейчас в теме
(5) При сборке папке проекта
<uses-sdk android:minSdkVersion="10"/>
Пытаюсь разобраться как это может повлиять на проблему.
7. Timur.V 80 04.09.18 11:15 Сейчас в теме
(6)
Вы файл манифеста открывали? Я точно не помню, но возможно, его можно поправить руками (файл манифеста).
Ошибка говорит о том, что такой элемент должен быть один <uses-sdk>
There should only be a single <uses-sdk> element in the manifest
8. extalionos 114 04.09.18 11:35 Сейчас в теме
(7)предыдущее мое сообщение с открытого файла манифеста, во время сборки проекта.
20. Justindj 25 05.09.18 16:46 Сейчас в теме
Привет, а как собрать приложение на 32 битной винде, у меня такая же ошибка?
Error occurred during initialization of VM
Could not reserve enough space for 1572864KB object heap
памяти 3 гигабайт выделил на виртуалку
21. o4karek 05.09.18 19:50 Сейчас в теме
(20) Виртуалке стоит дать гигов 8, а JVM`у - гига 1,5
22. extalionos 114 06.09.18 13:40 Сейчас в теме
(20) Попробуйте в конфигураторе в сборщике установить для 32 разрядной платформы 1С org.gradle.jvmargs = -Xmx2000M или поиграться этим значением. Понятно, что не стоит ставить сразу 3000, у вас тогда для ОС не хватит оперативки. Или согласен с коллегой увеличьте оперативную память.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот