Обновляю 1С: Мобильная касса до 2.18.2.0, ранее использовал мобильную платформу 8.3.9.91 на Android SDK (версия 25-) , приложение собралось после обновления, но есть ошибки, например при создании вида оплаты и подключении оборудования.
Далее попробовал собрать с помощью мобильной платформы 8.3.12.67 с помощью Android SDK (версия 26+), Android API Level : 28.
Начинается сборка ARM, в папке Temp вижу появление файлов проекта и Gradle, далее черно окно зависает, счетчик продолжает работу и так до бесконечности. Закрываю окно см. журнал сборки ниже.
Запускал сборку 1С от имени администратора, антивирусов на машине нет. Папку Temp перед каждой сборкой чистил. Пробовал на другом компьютере, аналогичная проблема. Пробовал тестовую мобильную платформу 8.3.12.83 - тоже самое.
Компьютер: W8.1 64, 12 Гб оперативной памяти, i5. В партнерке обсуждался подобный вопрос о недостаточности оперативной памяти, как видите у меня ее предостаточно.
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 не будет каждый раз скачивать свои потроха и сборка должна идти быстрее
(12) 1. Поставил 64 разрядную jdk была 32.
2. через командную строку добавил ndk-bundle
3. в конфигураторе в сборщике установил для 32 разрядной платформы 1С org.gradle.jvmargs=-Xmx3000M для 64 org.gradle.jvmargs=-Xmx6000M
Все собралось. Всем спасибо.
(14)1. без ndk вполне нормально собирает
2. эээ... боюсь, что установка 3 Гигов для 32-разрядной сборки может (!) привести к различным конфликтам - там всего около 3 гигов свободной памяти есть, на все
(16) я не про версию ОС (хотя в логе информация о другом говорит - строчка "Версия ОС")
я это написал как коментарий к вашему изменению параметров сборки для 32-разрядной версии. Ведь вы это зачем-то сделали?
(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 Гб оперативной памяти.
(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.
(11) Судя по вот этому тексту, не хватает оперативы:
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
К тому же неясно, как смогли 64-х разрядную 1с поставить на 32-разрядную Винду
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)На сколько я понимаю или я ошибаюсь, проект собирается в папке Temp, в случае ошибки он очищается и не используется повторно при сборке. Где-то могу управлять настройками файла AndroidManifest? (с другой стороны можно управлять через сборщик приложений, но разве он не должен штатно работать).
я где-то могу управлять настройками файла AndroidManifest?
Да, перед компиляцией там где-то настраиваются разрешения (доступ) вашей программы на устройстве пользователя.
Также указывается для каких устройств эта программа (версия андройда и т.д.) т.е. на каких устройствах она будет работать.
ссылка1 ссылка2 ссылка3
(6)
Вы файл манифеста открывали? Я точно не помню, но возможно, его можно поправить руками (файл манифеста).
Ошибка говорит о том, что такой элемент должен быть один <uses-sdk>
There should only be a single <uses-sdk> element in the manifest
Привет, а как собрать приложение на 32 битной винде, у меня такая же ошибка?
Error occurred during initialization of VM
Could not reserve enough space for 1572864KB object heap
памяти 3 гигабайт выделил на виртуалку
(20) Попробуйте в конфигураторе в сборщике установить для 32 разрядной платформы 1С org.gradle.jvmargs = -Xmx2000M или поиграться этим значением. Понятно, что не стоит ставить сразу 3000, у вас тогда для ОС не хватит оперативки. Или согласен с коллегой увеличьте оперативную память.