Совместимость проектов, gradle
От: 00011011  
Дата: 03.05.22 18:10
Оценка:
Изучаю третий день программинг под Android
С языками проблем нет, но как всегда есть проблемы с инструментами и пониманием их работы.
Вот в Visual Studio у проекта есть единственный "файл проекта", который можно было открыть любой студией. Древний *.dsp 98 года открывается и конвертируется самой последней 2022-й студией. А что в Android?
Скачал с гитхаба некий проект. Решил его открыть в Android Studio, и посыпались какие-то странные ошибки. Я даже их смысла не понимаю, но вероятно это что-то связанное с системой сборки gradle. Там куча файлов, смысл которых я вообще не понимаю. На stackoverflow они упоминаются для других версий Студии, и решения там совершенно отличаются от того, что есть у меня.
Я для примера создал простейший проект в Android Studio и решил обычной сравнивалкой файлов сравнить аналогичные файлы: build.gradle, settings.gradle, local.properties и прочие. Они вообще, по структуре отличаются!
Получается, путь скачивания с гитхаба и компиляции закрыт, и можно только подсматривать и дергать куски кода на java или kotlin, а целые проекты сразу собрать не удастся?
Re: Совместимость проектов, gradle
От: vsb Казахстан  
Дата: 03.05.22 18:30
Оценка:
Здравствуйте, 00011011, Вы писали:

0>Изучаю третий день программинг под Android

0>С языками проблем нет, но как всегда есть проблемы с инструментами и пониманием их работы.
0>Вот в Visual Studio у проекта есть единственный "файл проекта", который можно было открыть любой студией. Древний *.dsp 98 года открывается и конвертируется самой последней 2022-й студией. А что в Android?

Всё плохо.

0>Получается, путь скачивания с гитхаба и компиляции закрыт, и можно только подсматривать и дергать куски кода на java или kotlin, а целые проекты сразу собрать не удастся?


Можешь попробовать собрать из консоли. Шансы будут побольше. Обычно надо создать local.properties (можно скопировать с того проекта, который в студии создан) и выполнить ./gradlew assembleDebug

Но если хочется в идее нормально работать, нужен определенный опыт, чтобы понимать, что как работает и решать возникающие проблемы. В общем придётся страдать. Как минимум: разберись досконально с каждым файлом в проекте, зачем он нужен и тд. И с процессом сборки, что во что превращается.
Отредактировано 03.05.2022 18:32 vsb . Предыдущая версия .
Re: Совместимость проектов, gradle
От: kov_serg Россия  
Дата: 03.05.22 18:37
Оценка:
Здравствуйте, 00011011, Вы писали:

0>Изучаю третий день программинг под Android

0>С языками проблем нет, но как всегда есть проблемы с инструментами и пониманием их работы.
0>Вот в Visual Studio у проекта есть единственный "файл проекта", который можно было открыть любой студией. Древний *.dsp 98 года открывается и конвертируется самой последней 2022-й студией. А что в Android?
0>Скачал с гитхаба некий проект. Решил его открыть в Android Studio, и посыпались какие-то странные ошибки. Я даже их смысла не понимаю, но вероятно это что-то связанное с системой сборки gradle. Там куча файлов, смысл которых я вообще не понимаю. На stackoverflow они упоминаются для других версий Студии, и решения там совершенно отличаются от того, что есть у меня.
0>Я для примера создал простейший проект в Android Studio и решил обычной сравнивалкой файлов сравнить аналогичные файлы: build.gradle, settings.gradle, local.properties и прочие. Они вообще, по структуре отличаются!
0>Получается, путь скачивания с гитхаба и компиляции закрыт, и можно только подсматривать и дергать куски кода на java или kotlin, а целые проекты сразу собрать не удастся?

Там вообще лютая каша. gradle использует язык groovy. Он определяет хренову кучу действий которые потом выстраивает в граф и исполняет + костыли и т.п. Как и любая другая система сборки.
Но так как там всё постоянно меняется и это полноценный язык программирования, гибкость очень зашкаливает. Можно вообще всё от плагинов до вирусов. Последнии версии студии кстати спрашивают "вы в своём уме? вы точно доверяете этому проекту." после чего вся ответственность как бы на вас.

Вообще там идея такая. Есль gradlew — gradle wrapper он используется чтобы скачать сам gradle (всех нужных версий и все зависиомости) потом все зависимости для вашего проекта и потом собрать.
в идеале после скачивания проекта просто пишете ./gradlew build и всё, оно должно собраться (после того как выкачает гига два или около того). (Если много проектов то будет зоопарк разнообразных версий всего).
Сама студия постоянно призывает обновить gradle и потом обязательно что-то отваливается по причине depricated или других несовместимостей. А обновляется всё постоянно и не всегда в лучшую сторону.

ps: то что можно собрать скриптом за 10сек gradle может вдумчиво собирать более получаса, но при повторном запуске уже будет быстро
Re: Совместимость проектов, gradle
От: Zhendos  
Дата: 03.05.22 18:39
Оценка:
Здравствуйте, 00011011, Вы писали:

0>Изучаю третий день программинг под Android

0>Скачал с гитхаба некий проект. Решил его открыть в Android Studio, и посыпались какие-то странные ошибки.

За понимание структуры проекта отвечает "Android gradle plugin" или как-то так,
а не сама IDE.
Обычно плагин если видит что проект старой версии предлагает его сконвертировать
в более новую версию, но автоматическая конвертация не всегда работает полностью правильно и приходится
допиливать руками.

Но старые версии представления проекта тоже поддерживаются сколько-то времени,
поэтому частая ошибка это как раз согласиться на конвертирование и получить кучу мало вразумительных
ошибок.
Re: Совместимость проектов, gradle
От: AntoxaM  
Дата: 05.05.22 17:24
Оценка:
Здравствуйте, 00011011, Вы писали:

0>Скачал с гитхаба некий проект. Решил его открыть в Android Studio, и посыпались какие-то странные ошибки. Я даже их смысла не понимаю, но вероятно это что-то связанное с системой сборки gradle. Там куча файлов, смысл которых я вообще не понимаю. На stackoverflow они упоминаются для других версий Студии, и решения там совершенно отличаются от того, что есть у меня.

0>Я для примера создал простейший проект в Android Studio и решил обычной сравнивалкой файлов сравнить аналогичные файлы: build.gradle, settings.gradle, local.properties и прочие. Они вообще, по структуре отличаются!
ага, всё печально. С выходом нового грэдла периодически приходится переделывать скрипты.

0>Получается, путь скачивания с гитхаба и компиляции закрыт, и можно только подсматривать и дергать куски кода на java или kotlin, а целые проекты сразу собрать не удастся?

Можно попрбовать скачать старую студию, с подходящей версией gradle плагина.

Вообще в мобилках всё очень быстро меняется. На старые учебные проекты надо смотреть с осторожностью, потому что многие вещи, которые там используются, могут быть уже устаревшими.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.