bdd2

Сборка мобильных приложений под Android API 18

Опубликовал Ruslan Edokov (Redokov) в раздел Программирование - Практика программирования

При сборке мобильных приложений под Андроид, фирма 1С настоятельно рекомендует использовать программный интерфейс версии 17(Android API 17). Для тех, кто подобно мне не смог победить SDK Manager и скачать 17 АПИ и предназначена эта заметка.

Постановка задачи

Существует конфигурация «Сборщик мобильных приложений» от фирмы 1С, основное предназначение которой - компиляция приложений на встроенном языке 1С в мобильное приложение со странной привязанностью к АПИ 17. Задача в том, чтобы заставить конфигурацию, собирать приложения, используя АПИ 18.

Способ реализации

Первым делом попытался просто собрать приложение. Появилась ошибка:

 Первая ошибка при сборке под 18 API

Открыл модуль, обнаружил код, выполняющий проверку версию АПИ. Убрал её. Не помогло.

Следующим этапом, запустил глобальный поиск по конфигурации, с целью найти все вхождения числа 17 в тестах модулей. Призвав на помощь здравый смысл, заменил все вхождения числа 17 на 18 и снова попробовал собрать приложение. Все равно версия АПИ требуется другая:

 Вторая ошибка при сборке приложения под API 18

Пришлось чесать репу.

Анализируя код, обнаружил общий макет «build_xml», содержащий инструкции по сборке приложения. Сохранил диск, исправил, загрузил.

 Изменения в общем макете

В результате:

 Все собралось!

К чему все это?

Ехидный читатель может спросить: «и зачем ты тут так подобно рассказываешь о том, что способен сделать стажер во франчайзи? Не проще просто конфигурацию выложить?» Нет, не проще. Уверен, что есть скрытые косяки в моем способе, которые пока не вылезли на приложениях. А у кого-то ошибки появятся и придется ему их решать в одиночку, править конфигурацию, а в итоге появится еще один аналогичный пост с cf-ником. Поэтому создал хранилище на code.goggle.com(не github т.к. у меня проблемы с ключами шифрования, как решу, сделаю зеркало) и приглашаю присоединиться всех желающих доработать функционал или поделиться багами. А для желающих «скачать быстро», cf-ник приложен к статье.

Скачать файлы

Наименование Файл Версия Размер
Конфигурация сборщика мобильных приложений под API Android 18
.cf 348,74Kb
22.03.14
18
.cf 1.0.2.8 348,74Kb 18 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Дмитрий Шерстобитов (DitriX) 2321 23.03.14 12:22 Сейчас в теме
Ну во первых - вы нарушаете лицензии 1С, так как эта конфа не доступна в свободном режиме скачивания с сайта 1С и даже ссылку на первоисточник не указали, но это ладно, на вашей совести. Скоро будем менять одну строчку в УПП и выкладывать конфу :)

А во вторых - зря вы так. Какой вообще смысл? Апи берется из разсчета необходимых функций, которые применяются при разработке, в 18 их больше, но в программе они не используются. Так что нет абсолютно никакого резона это делать :)

Лучше бы поисправляли косяки с компиляцией если имена стоят русские, или слишком длинные и т.д. и .т.п
2. Ruslan (flyer) 146 23.03.14 14:27 Сейчас в теме
да кстати сборщик надо конечно улучшать у самого руки не доходят мелочи доделать там для удобства.
3. Марат Настоящий (rayastar) 57 23.03.14 16:50 Сейчас в теме
(1) DitriX, полностью согласен. Давайте не будет нарушать лицензионное соглашение и зарабатывать у пользователей infostart'a репутацию пиратов
4. Ruslan Edokov (Redokov) 75 23.03.14 21:57 Сейчас в теме
(1)(3) конфигурация поставляется вместе с мобильной платформой. Отдельных на неё пользовательских соглашений нет. Обоснуете нарушение лицензионного соглашения?
Главная цель публикации - объединить усилия в доработке сборщика. Я вот, например, ни разу не попал на те ошибки, что описаны в (1). Даже не подозревал о них. Есть какая-то более подробная информация об этих ошибках? Может заведете баг в ишью трекере?
А АПИ 18 был взят потому, что семнадцатый мне скачать не удалось, а вовсе не из-за его каких-то преимуществ. О чем честно сказано в преамбуле :-)
5. Дмитрий Шерстобитов (DitriX) 2321 23.03.14 22:30 Сейчас в теме
(4) как минимум - не было ссылки на первоисточник:) А как максимум - спросите у 1С сами, мне лень :)

На счет объединить усилия, если честно, я пока не вижу никакого сенса в этом. Вот с выходом 8.3.5 - можно подумать, а сейчас пилить что то - смысла нет, 1С все переделает на корню (ИМХО) вы же видите сами - на сколько убогая эта конфа. Сложилось мнение, что 1С сами с ней реально не работали. А так, разработали на уровне - лишь бы было. :)

Про то, что нельзя скачать 17 апи, это ж как так? Никогда такого нигде не встречал. Апи через менеджер качали? Какой адрес подставляли?
6. Ruslan Edokov (Redokov) 75 23.03.14 22:53 Сейчас в теме
(5) DitriX, тогда пока предлагаю снять обвинения в нарушении лицензионного соглашения. :-)
Что касается АПИ, то я скачал тот sdk, что льется по ссылке, указанной в документации к платформе. А там ссылка на последний релиз. А SDK Manager, который с ним установился, что-то другое помимо уже установленного скачать не смог - ругался на отсутствие файлов, по требуемым ему адресам. Потратил час на поиск места, где можно скачать семнадцатый, не нашел и доработал что есть.
Насчет того, что конфигурация сырая - да, безусловно. Но, мне кажется, именно она послужит основой дальнейшим сборщикам.
7. {ÐƦǑƝȊ} mx (dour-dead) 185 26.03.14 09:27 Сейчас в теме
(6) Redokov, Три дня назад скачал и поставил Android SDK, описанных проблем не возникло.
Все компилится и работает даже под Android 4.4.2, и в конфигурации нечего не надо править.
Прикрепленные файлы:
8. Ruslan Edokov (Redokov) 75 26.03.14 09:57 Сейчас в теме
(7) dour-dead, при написании статьи я заново прошел все этапы, описанные в ней. И собрать приложение не получилось. Как его можно собрать на 18 АПИ, без доработки конфигурации, если в программу прошита жесткая проверка 17 и если версия отличается, то приложение не собирается.
9. Макс Зеленский (mzelensky) 51 26.03.14 10:49 Сейчас в теме
Доброго времени суток!
А у меня вот такой вопрос. Поставил Android SDK для разных версий Андроида (с 3.0 по 4.2.2). Когда собираю мобильное приложение, то в логах видно .что сборка идет под "4.2.2". Следовательно возникает вопрос - а как вообще контролировать под какую версию собирать приложение?

Как минимум вопрос стал актуальным по той причине, что при установке приложения на планшет по 3.2 в нижней панели доступна кнопка "все функции" (стандартная). А когда ставлю это же приложение на телефон под Андроид 4.1, то этой кнопочки (все функции) просто НЕТ! И перейти в какой-нибудь справочник с рабочего стола просто не возможно!
10. Макс Зеленский (mzelensky) 51 26.03.14 10:54 Сейчас в теме
Кстати, лично мне так и не удалось нормально победить сборку приложения в стандартные ТЕМПОВСКИЕ каталоги. Даже если запускаюсь от Админа, то идет ошибка доступа к файлам. В результате пришлось править конфу и прописывать свои путь для каталогов. Только тогда стала нормально собираться.
11. Ruslan Edokov (Redokov) 75 26.03.14 12:19 Сейчас в теме
(10) mzelensky, под какой операционкой собираете? Куда ведет переменная temp? Какие права у пользователя, под которым собираете приложение?
У меня темп настроен на d:\temp и все нормально собирается, но у меня и локальный админ в правах.
12. Ruslan Edokov (Redokov) 75 26.03.14 12:22 Сейчас в теме
(9) mzelensky, здесь, на мой взгляд, дело не в сборке под конкретную платформу. А в поведении самой платформы. Уверен, если голую платформу установить на этих устройствах - поведение сохранится.
13. Игорь Левин (Zlohobbit) 101 18.09.16 22:28 Сейчас в теме
Доброго времени суток, друзья! Скомпилировал apk-шку на 17 API и даже установил на мобильник на планшет и не на один. Вот только при запуске возникает сообщение "Приложение остановлено" и все. И ни в какую! Может кто то подскажет куда копать?
14. Женя Мохин (mevgenym) 84 19.09.16 10:04 Сейчас в теме
(13) Zlohobbit, возможно платформа не совпадает arm \ x86