Кт342 параметры. Параметры и характеристики транзистора КТ342: полное описание

Какие основные параметры имеет транзистор КТ342. Каковы его электрические характеристики. Чем отличаются разные варианты КТ342. Где применяется этот транзистор.

Основные параметры и характеристики транзистора КТ342

Транзистор КТ342 — это универсальный кремниевый n-p-n транзистор, предназначенный для применения в импульсных и высокочастотных схемах. Он выпускается в нескольких модификациях, отличающихся характеристиками. Рассмотрим основные параметры этого транзистора:

  • Структура: n-p-n
  • Максимальное напряжение коллектор-эмиттер: от 10 В до 60 В (зависит от модификации)
  • Максимальный ток коллектора: 50 мА (300 мА в импульсном режиме)
  • Максимальная рассеиваемая мощность коллектора: 250 мВт
  • Статический коэффициент передачи тока: от 50 до 1000 (зависит от модификации)
  • Граничная частота коэффициента передачи тока: от 150 МГц до 300 МГц
  • Емкость коллекторного перехода: не более 8 пФ

Как видим, КТ342 обладает хорошим сочетанием частотных и усилительных свойств, что делает его универсальным транзистором для различных применений.


Модификации транзистора КТ342 и их особенности

Транзистор КТ342 выпускается в нескольких модификациях, отличающихся характеристиками:

  • КТ342А — базовая модель
  • КТ342Б — повышенный коэффициент усиления
  • КТ342В — максимальный коэффициент усиления
  • КТ342Г — повышенное напряжение коллектор-эмиттер
  • КТ342АМ, КТ342БМ, КТ342ВМ — модификации в пластмассовом корпусе

Чем отличаются эти модификации? Давайте сравним их ключевые параметры:

МодификацияКоэффициент усиления h21эМакс. напряжение коллектор-эмиттер
КТ342А100-25030 В
КТ342Б200-50025 В
КТ342В400-100010 В
КТ342Г50-12060 В

Как видим, модификации позволяют выбрать оптимальное сочетание коэффициента усиления и максимального напряжения для конкретной схемы.

Область применения транзистора КТ342

Благодаря своим характеристикам, транзистор КТ342 находит широкое применение в различных электронных устройствах:

  • Усилители высокой и промежуточной частоты
  • Генераторы и преобразователи частоты
  • Импульсные схемы
  • Переключающие устройства
  • Маломощные стабилизаторы напряжения
  • Схемы управления в автоматике

Универсальность КТ342 позволяет использовать его как в аналоговых, так и в цифровых схемах, что делает его популярным выбором для разработчиков электроники.


Конструкция и корпус транзистора КТ342

Транзистор КТ342 выпускается в двух вариантах корпуса:

  • Металлостеклянный корпус (КТ342А, КТ342Б, КТ342В, КТ342Г)
  • Пластмассовый корпус (КТ342АМ, КТ342БМ, КТ342ВМ)

Вес транзистора в металлостеклянном корпусе не превышает 0.5 г, в пластмассовом — 0.3 г. Какие преимущества дает каждый тип корпуса?

  • Металлостеклянный корпус обеспечивает лучший теплоотвод и экранирование
  • Пластмассовый корпус дешевле в производстве и легче

Выбор типа корпуса зависит от конкретного применения транзистора и требований к устройству.

Маркировка транзистора КТ342

Для идентификации транзисторов КТ342 используется несколько способов маркировки:

  1. Буквенно-цифровое обозначение на корпусе (например, КТ342А)
  2. Цветовая маркировка (для пластмассовых корпусов):
    • КТ342АМ: синяя метка на боковой части, тёмно-красная на торце
    • КТ342БМ: синяя метка на боковой части, жёлтая на торце
    • КТ342ВМ: синяя метка на боковой части, тёмно-зелёная на торце
  3. Условные обозначения (для пластмассовых корпусов):
    • КТ342АМ: буква А и треугольник
    • КТ342БМ: буква Б и треугольник
    • КТ342ВМ: буква В и треугольник

Правильная идентификация транзистора важна для обеспечения корректной работы схемы и предотвращения ошибок при замене компонентов.


Аналоги транзистора КТ342

При необходимости замены КТ342 можно использовать ряд аналогов. Вот некоторые из них:

  • КТ342А: BC107A, 2N929, 2SC3879S
  • КТ342Б: 2SC454B, 2SC55, 2SC4618Q
  • КТ342В: BC107B, 2SC4998, 2SC4997
  • КТ342Г: BC239B, KTN5019, KTC383

При выборе аналога нужно учитывать не только основные параметры, но и особенности конкретной схемы. Как правильно подобрать аналог?

  1. Сравнить ключевые параметры (напряжение, ток, коэффициент усиления)
  2. Проверить частотные характеристики
  3. Убедиться в совместимости корпуса и выводов
  4. Протестировать работу схемы с выбранным аналогом

Правильный выбор аналога позволит сохранить работоспособность устройства при отсутствии оригинального компонента.

Особенности применения транзистора КТ342 в схемах

При использовании КТ342 в электронных схемах следует учитывать некоторые особенности:

  • Чувствительность к статическому электричеству
  • Зависимость параметров от температуры
  • Необходимость обеспечения правильного теплоотвода
  • Влияние паразитных емкостей на высоких частотах

Как обеспечить оптимальную работу КТ342 в схеме? Вот несколько рекомендаций:


  1. Использовать антистатические меры предосторожности при монтаже
  2. Обеспечить температурную стабилизацию схемы
  3. При необходимости применять радиаторы для отвода тепла
  4. Минимизировать длину проводников в высокочастотных цепях
  5. Учитывать разброс параметров и при необходимости производить отбор транзисторов

Соблюдение этих рекомендаций поможет создать надежное и эффективно работающее устройство на базе транзистора КТ342.


Транзистор КТ342: КТ342А, КТ342Б, КТ342В, КТ342Г

Поиск по сайту

Новости


DC/DC с током потребления 7 мкА

ГЛАВНАЯ » ТРАНЗИСТОРЫ » КТ342

Транзистор КТ342 — универсальный, структуры n-p-n, эпитаксиально-планарный, кремниевый. Основное применение — импульсные устройства.
КТ342А, КТ342Б, КТ342В, КТ342Г выпускаются в металлостеклянном корпусе. Выводы гибкие. Тип прибора указывается на корпусе.
КТ342АМ, КТ342БМ, КТ342ВМ выпускаются в пластмассовом корпусе, также с гибкими выводами. Маркируются условными обозначениями:

КТ342АМбуква А и треугольник
КТ342БМбуква Б и треугольник
КТ342ВМбуква В и треугольник

Существует также маркировка цветными метками.

ТипНа плоской боковой частиНа торце
КТ342АМСиняяТёмно-красная
КТ342БМСиняяЖёлтая
КТ342ВМСиняяТёмно-зелёная

Металлостеклянные транзисторы весят не более 0.5 г, пластмассовые не более 0.3 г.

КТ342 цоколевка

Цоколевка КТ342 показана на рисунке.

Электрические параметры КТ342

• Коэффициент передачи тока (статический). Схема с общим эмиттером
при Uкб = 5 В, Iэ = 1 мА для КТ342А, КТ342Б, КТ342В, КТ342Г
и Iэ = 2 мА для КТ342АМ, КТ342БМ, КТ342ВМ:
  Т = +25°C:
КТ342А, КТ342АМ100÷250
КТ342Б, КТ342БМ200÷500
КТ342В, КТ342ВМ400÷1000
КТ342Г50 ÷ 125
  Т = −60°C:
КТ342А, КТ342АМ25 ÷ 250
КТ342Б, КТ342БМ50 ÷ 500
КТ342В, КТ342ВМ100÷1000
  Т = +125°C:
КТ342А, КТ342АМ100
КТ342Б, КТ342БМ
200
КТ342В, КТ342ВМ400
• Граничная частота коэффициента передачи тока
при Uкб = 10 В, Iэ = 5 мА, не менее:
КТ342А, КТ342АМ250 МГц
КТ342Б, КТ342В, КТ342Г, КТ342БМ, КТ342ВМ300 МГц
• Граничное напряжение при Iэ = 5 мА, не менее:
Т ≤ +100°C:
КТ342А, КТ342АМ, КТ342Г25 В
КТ342Б, КТ342БМ20 В
КТ342В, КТ342ВМ10 В
Т = +125°C:
КТ342А, КТ342АМ, КТ342Г20 В
КТ342Б, КТ342БМ15 В
КТ342В, КТ342ВМ10 В
• Напряжение насыщения К-Э при Iк = 10 мА, Iб = 1 мА, не более   
0. 1 В
• Напряжение насыщения Б-Э при Iк = 10 мА, Iб = 1 мА, не более0.9 В
• Ток коллектора (обратный) при Uкб = Uкб,макс, не более:
Т ≤ +25°C0.05 мкА
Т ≤ +125°C КТ342А, КТ342Б, КТ342В, КТ342Г10 мкА
• Ток К-Э (обратный) Rб = 10 кОм, Uкэ = Uкэ,макс, не более:
КТ342А, КТ342Б, КТ342В30 мкА
КТ342Г100 мкА
• Ток Э (обратный) при Uэб = 5 В, не более30 мкА
• Ёмкость коллекторного перехода при Uкб = 5 В, не более8 пФ

Предельные эксплуатационные показатели КТ342

• Напряжение К-Э (постоянное) при Rбэ = 10 кОм:
  Т ≤ +100°C
КТ342А, КТ342АМ30 В
КТ342Б, КТ342БМ25 В
КТ342В, КТ342ВМ10 В
КТ342Г60 В
  Т = +125°C
КТ342А, КТ342АМ25 В
КТ342Б, КТ342БМ20 В
КТ342В, КТ342ВМ10 В
КТ342Г45 В
• Напряжение Э-Б (постоянное)5 В
• Ток коллектора (постоянный)50 мА
• Ток коллектора (импульсный) при tи ≤ 40 мкс, Q ≥ 500   
300 мА
• Рассеиваемая мощность коллектора (постоянная):
  Т ≤ +25°C250 мВт
  Т = +125°C50 мВт
• Температура перехода (p-n)+150°C
• Рабочая температура (окружающей среды)−60 . .. +125°C

Транзистор КТ342 — DataSheet

Перейти к содержимому

Цоколевка транзистора КТ342

 

Параметры транзистора КТ342
ПараметрОбозначениеМаркировкаУсловияЗначениеЕд. изм.
АналогКТ342АBC107A, 2N929, 2SC3879S *3, 2SC3193 *3, 2SC123 *3, 2N3291 *2, 2N3292 *2, 2SC33, BF185 *2, 2SC2839D *3, 2SC2839E *3, 2SC2839F *3, 2SC4399-3 *3, 2N4435 *2, 2N3293 *2, 2N3294 *2, 2SC105 *2, BF184 *2
КТ342Б2SC454B, 2SC55 *2, 2SC4618Q *1, 2SC4618P *1, NTE319 *2, 2SC929 *3
КТ342ВВС107В, 2SC4998U *3, 2SC4998 *3, 2SC4997U *3, 2SC4997 *3
КТ342ГВС239В, KTN5019 *2, KTC383 *2, EN916 *3, 2SC4098N *1, 2SC2413KN *1, 2SC4618N *1
КТ342АМВС109С, 2N3710 *2, 2N3707 *2, KTC9016 *2, СХ917 *2, BF594, KSC184 *2, SK3356 *2, 2SC710 *2, BF495 *2, BF494, BF255, 

2SC3000E, 2SC3000 *3, 2SC3000D *3, KF125 *2, BF254B, 2SC1032 *2, 2SC380A-R, 2SC380TM-R *2, 2SC2076 *2

КТ342БМВС239С, 2SC388A-TM, КТC388AY *2, KTN5020Y *2, 2SC3314, 2SC3544K *2, BF494A, 2SC3000F *2, КС239В *2
КТ342ВМВС108С, PN5134 *2
КТ342ГМ2N4124, 2N3707, 2N3710, 

2SC3192 *2, KSC184 *2

КТ342ДМ2N4123, 2SC644, KSC900 *2, 2SC870 *2, КС239В
Структура —n-p-n
Максимально допустимая постоянная рассеиваемая мощность коллектораPK max,P*K, τ max,P**K, и maxКТ342А250мВт
КТ342Б250
КТ342В250
КТ342Г250
КТ342АМ250
КТ342БМ250
КТ342ВМ250
КТ342ГМ250
КТ342ДМ250
Граничная частота коэффициента передачи тока транзистора для схемы с общим эмиттеромfгр, f*h31б, f**h31э, f***maxКТ342А≥250МГц
КТ342Б≥300
КТ342В≥300
КТ342Г≥300
КТ342АМ≥250
КТ342БМ≥300
КТ342ВМ≥300
КТ342ГМ≥150
КТ342ДМ≥150
Пробивное напряжение коллектор-база при заданном обратном токе коллектора и разомкнутой цепи эмиттераUКБО проб.U*КЭR проб., U**КЭО проб.КТ342А35В
КТ342Б30
КТ342В25
КТ342Г10к60*
КТ342АМ35
КТ342БМ30
КТ342ВМ10к25
КТ342ГМ10к30*
КТ342ДМ25*
Пробивное напряжение эмиттер-база при заданном обратном токе эмиттера и разомкнутой цепи коллектораUЭБО проб.КТ342А5В
КТ342Б5
КТ342В5
КТ342Г5
КТ342АМ5
КТ342БМ5
КТ342ВМ5
КТ342ГМ5
КТ342ДМ5
Максимально допустимый постоянный ток коллектораIK max, I*К , и maxКТ342А50(300*)мА
КТ342Б50(300*)
КТ342В50(300*)
КТ342Г50(300*)
КТ342АМ50(300*)
КТ342БМ50(300*)
КТ342ВМ50(300*)
КТ342ГМ50(300*)
КТ342ДМ50(300*)
Обратный ток коллектора — ток через коллекторный переход при заданном обратном напряжении коллектор-база и разомкнутом выводе эмиттераIКБО, I*КЭR, I**КЭOКТ342А25 В≤0. 05мкА
КТ342Б20 В≤0.05
КТ342В10 В≤0.05
КТ342Г60 В≤0.05
КТ342АМ25 В≤0.05
КТ342БМ20 В≤0.05
КТ342ВМ10 В≤0.05
КТ342ГМ30 В≤0.05
КТ342ДМ25 В≤0.05
Статический коэффициент передачи тока транзистора в режиме малого сигнала для схем с общим эмиттеромh21э,  h*21ЭКТ342А5 В; 1 мА100…250*
КТ342Б5 В; 1 мА200…500*
КТ342В5 В; 1 мА400…1000*
КТ342Г5 В; 1 мА50…120*
КТ342АМ5 В; 2 мА100…250*
КТ342БМ5 В; 2 мА200…500*
КТ342ВМ5 В; 2 мА400…1000*
КТ342ГМ5 В; 2 мА100…250*
КТ342ДМ5 В; 2 мА200…500*
Емкость коллекторного переходаcк,  с*12эКТ342А5 В≤8
пФ
КТ342Б5 В≤8
КТ342В5 В≤8
КТ342Г5 В≤8
КТ342АМ5 В≤8
КТ342БМ5 В≤8
КТ342ВМ5 В≤8
КТ342ГМ5 В≤8
КТ342ДМ5 В≤8
Сопротивление насыщения между коллектором и эмиттером rКЭ нас,  r*БЭ нас, К**у. р.КТ342А≤10Ом, дБ
КТ342Б≤10
КТ342В≤10
КТ342Г≤10
КТ342АМ≤10
КТ342БМ≤10
КТ342ВМ≤10
КТ342ГМ≤10
КТ342ДМ≤10
Коэффициент шума транзистораКш, r*b, P**выхКТ342АДб, Ом, Вт
КТ342Б
КТ342В
КТ342Г
КТ342АМ
КТ342БМ
КТ342ВМ
КТ342ГМ
КТ342ДМ
Постоянная времени цепи обратной связи на высокой частотеτк, t*рас,  t**выкл,  t***пк(нс)КТ342А≤200пс
КТ342Б≤300
КТ342В≤700
КТ342Г
КТ342АМ≤200
КТ342БМ≤300
КТ342ВМ≤700
КТ342ГМ
КТ342ДМ

Описание значений со звездочками(*,**,***) смотрите в таблице параметров биполярных транзисторов.

*1 — аналог по электрическим параметрам, тип корпуса отличается.

*2 — функциональная замена, тип корпуса аналогичен.

*3 —  функциональная замена, тип корпуса отличается.

 

Цветовая и кодовая маркировка транзисторов

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

kotlin — Невозможно подтвердить значение потока состояния в модели представления

Вы не можете вызвать toList на SharedFlow следующим образом:

Общий поток никогда не завершается. Вызов Flow.collect в общем потоке никогда не завершается нормально, как и сопрограмма, запущенная функцией Flow.launchIn .

Таким образом, вызов toList будет зависать навсегда, потому что поток никогда не достигает конечной точки, где он говорит «хорошо, это все элементы», и toList должен вернуть окончательное значение. Поскольку StateFlow в любом случае содержит только один элемент за раз, и вы не собираете данные за определенный период времени, вы, вероятно, просто хотите take(1).toList() .

Или используйте first() , если вам не нужен обтекающий список, который, похоже, вам не нужен — каждый элемент в StateFlow представляет собой List , что и clickRowRepository.fetchClickRows () тоже возвращается. Так expectValue — это List , тогда как factValue — это List> — так что они все равно не будут совпадать!


изменить ваше обновление (используя first() ) имеет несколько проблем.

Прежде всего, clickRowsFlow StateFlow в вашей ViewModel только обновляется, когда вы вызываете fetchAndInitialiseClickRows() , потому что это то, что извлекает значение и устанавливает его на StateFlow . Вы не вызываете это во втором примере, поэтому он не будет обновляться.

Во-вторых, этот StateFlow будет проходить через два значения состояния, верно? Первый — это исходный пустой список, второй — содержимое строки, которое вы получаете из репозитория. Поэтому, когда вы получаете доступ к этому StateFlow , он либо должен быть после того, как произошло обновление, либо (лучше) вам нужно игнорировать первое состояние и возвращать только второе один:

 val factValue = clickRowViewModel.clickRowsFlow
    .drop(1) // игнорировать начальное состояние
    .first() // затем берем первый результат после этого
// запускаем обновление -после- настройки потоковой коллекции,
// так что не стоит беспокоиться о состоянии гонки
clickRowsViewModel.fetchAndInitialiseClickRows()
 

Таким образом, вы подписываетесь на StateFlow и немедленно получаете (и сбрасываете) начальное состояние. Затем, когда происходит обновление, оно должно отправить подписчику другое значение, которое принимает эти первое новое значение в качестве конечного результата.


Но есть еще одна сложность — поскольку fetchAndInitialiseClickRows() запускает свою собственную сопрограмму и немедленно возвращает результат, это означает, что задача выборки и обновления выполняется асинхронно. Вам нужно дать ему время, чтобы закончить, прежде чем вы начнете утверждать какие-либо результаты от него.

Один из вариантов — запустить сопрограмму, а затем заблокировать ожидание появления результата:

 // запустить обновление
clickRowsViewModel.fetchAndInitialiseClickRows()
// запустить сбор как блокирующую операцию, которая завершится, когда вы получите
// этот второй результат
val factValue = clickRowViewModel.clickRowsFlow
    .дроп(1)
    .первый()
 

Это работает до тех пор, пока fetchAndInitialiseClickRows не завершится немедленно . Эта потребительская цепочка требует , чтобы было произведено по крайней мере два элемента , пока она подписана — если она никогда не увидит начальное состояние, она зависнет в ожидании этого второго (на самом деле третьего) значения, которое никогда не придет. Это вводит состояние гонки, и даже если оно «вероятно, хорошо на практике», это все равно делает тест хрупким.

Другой вариант — сначала подписаться, используя сопрограмму, чтобы выполнение могло продолжаться, и , затем запустить обновление — таким образом подписчик может увидеть начальное состояние, а затем обновление, которое приходит позже:

 // асинхронный запуск похож на запуск, но он возвращает `Deferred`, который выдает результат позже
вал фактическое значение = асинхронный {
    clickRowViewModel.clickRowsFlow
        .дроп(1)
        .первый()
}
// теперь можно начинать обновление
clickRowsViewModel.fetchAndInitialiseClickRows()
// затем используйте `await` для блокировки, пока результат не будет доступен
assertEquals (ожидаемое, фактическое значение. ожидание ())
 

Вы всегда должны убедиться, что вы справляетесь с ожиданием своих сопрограмм, иначе тест может закончиться раньше (т.е. вы делаете утверждение до того, как будут получены результаты). Как и в первом примере, вы запускаете сопрограмму для заполнения своего списка, но не гарантируете, что у нее есть время для завершения, прежде чем вы проверите содержимое списка.

В этом случае вам нужно будет сделать что-то вроде advanceUntilIdle() — взгляните на этот раздел о тестировании сопрограмм, там показаны некоторые способы их ожидания. Это также может работать для того, который вы запускаете с fetchAndInitialiseClickRows (поскольку он говорит, что ожидает других сопрограмм в планировщике, а не той же области), но я не совсем знаком с этим, вы можете изучить его, если хотите!

android — Внутренняя ошибка компилятора после обновления версии Kotlin до 1.5.30

Мне трудно обновить свой Android-проект, чтобы подготовить его для компоновки Jetpack …

Я начал с обновления всех своих реализации библиотек, поэтому я использую современные библиотеки, и все прошло хорошо. После этого я обновил свою версию Kotlin с 1.4.10 до 1. 5.31 в настройках сборки проекта

 скрипт сборки {
    доб.котлин_версия = '1.5.31'
...}
 

и проблемы побежали.

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

 Не удалось выполнить задачу ':app:compileDebugKotlin'.
> Внутренняя ошибка компилятора. Смотрите журнал для более подробной информации
* Пытаться:
Запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --info или --debug, чтобы получить больше выходных данных журнала. Запустите с параметром --scan, чтобы получить полную информацию.
 

При работе с трассировкой стека я получаю журнал ошибок, который совсем не понимаю:

 org.gradle.api.tasks.TaskExecutionException: не удалось выполнить задачу ':app:compileDebugKotlin'.
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:187)
    в org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try. java:268)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
    в org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
    в org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    в org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    в org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    в org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    в org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    в org.gradle.api.internal. tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner. java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
    в org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    в org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction. execute(DefaultTaskExecutionGraph.java:388)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    в org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    в org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    в org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Вызвано: org.gradle.api.GradleException: внутренняя ошибка компилятора. Смотрите журнал для более подробной информации
    в org. jetbrains.kotlin.gradle.tasks.TasksUtilsKt.throwGradleExceptionIfError(tasksUtils.kt:18)
    в org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:135)
    в org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.runCompilerAsync(GradleKotlinCompilerRunner.kt:200)
    в org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.runCompilerAsync(GradleKotlinCompilerRunner.kt:195)
    в org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.runJvmCompilerAsync(GradleKotlinCompilerRunner.kt:96)
    в org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompilerAsync$kotlin_gradle_plugin(Tasks.kt:578)
    в org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompilerAsync$kotlin_gradle_plugin(Tasks.kt:429)
    в org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.executeImpl(Tasks.kt:374)
    в org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:342)
    в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
    в java. base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    в org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    в org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:47)
    в org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    в org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
    в org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:498)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    в org.gradle.internal.operations. DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
    в org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
    в org.gradle. api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:483)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:466)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:105)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:270)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:248)
    в org.gradle.internal.execution.steps.ExecuteStep.executeInternal (ExecuteStep.java: 83)
    в org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:37)
    в org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
    в org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)
    в org.gradle.internal. operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
    в org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper. java:54)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
    в org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:47)
    в org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:37)
    в org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
    в org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
    в org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50)
    в org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
    в org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
    в org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
    в org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
    в org. gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
    в org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
    в org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:54)
    в org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)
    в org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
    в org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
    в org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)
    в org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)
    в org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)
    в org.gradle.internal.execution.steps.StoreExecutionStateStep. execute(StoreExecutionStateStep.java:40)
    в org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)
    в org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
    в org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
    в org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)
    в org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)
    в org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
    в org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
    в org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:84)
    в org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:41)
    в org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep. execute(MarkSnapshottingInputsFinishedStep.java:37)
    в org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
    в org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91)
    в org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    в org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:78)
    в org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:49)
    в org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:105)
    в org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:50)
    в org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)
    в org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep. java:86)
    в org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32)
    в org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
    в org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)
    в org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)
    в org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:283)
    в org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
    в org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
    в org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
    в org.gradle. internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
    в org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:49)
    в org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)
    в org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:184)
    в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
    в org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
    в org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    в org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    в org.gradle.api.internal. tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    в org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    в org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3. execute(DefaultBuildOperationRunner.java:75)
    в org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    в org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
    в org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    в org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
    в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    в org.gradle.execution.plan.LocalTaskNodeExecutor. execute(LocalTaskNodeExecutor.java:74)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
    в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    в org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor. java:124)
    в org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    в org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    в org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
 

Вот содержимое файла сборки проекта:

 buildscript {
    доб.котлин_версия = '1.5.30'
    репозитории {
        Google()
        jcenter()
    }
    зависимости {
        путь к классам 'com.android.tools.build: gradle: 7.0.2'
        путь к классам 'com.google.gms:google-services:4.3.10'
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
        classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
        // ПРИМЕЧАНИЕ. Не размещайте здесь зависимости вашего приложения; они принадлежат
        // в отдельных файлах модуля build.gradle
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
все проекты {
    репозитории {
        Google()
        jcenter()
        знаток {
            URL "https://maven. google.com"
        }
        maven { URL 'https://jitpack.io' }
    }
}
задача очистить (тип: Удалить) {
    удалить rootProject.buildDir
}
 

И файл сборки приложения:

 применить плагин: 'com.android.application'
применить плагин: 'com.google.gms.google-services'
применить плагин: "androidx.navigation.safeargs"
применить плагин: «котлин-андроид»
применить плагин: 'kotlin-kapt'
применить плагин: 'com.google.gms.google-services'
применить плагин: «котлин-андроид»
применить плагин: «kotlin-android-extensions»
применить плагин: 'kotlinx-сериализация'
андроид { 
 compileSdkVersion 31
 defaultConfig {
 идентификатор приложения "xx.xx.xx"
 minSdkВерсия 28
 targetSdkВерсия 31
 код версии 10
 имя версии "1.0"
 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 vectorDrawables.useSupportLibrary = истина
 мультидексенаблед правда
 }
 типы сборки {
 релиз {
 minifyEnabled true
 proguardFiles getDefaultProguardFile('proguard-android. txt'), 'proguard-rules.pro'
 отлаживаемый = ложь
 signingConfig signingConfigs.debug
 }
 отлаживать {
 minifyEnabled true
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 }
 }
 lintOptions {
 отключить «Нуллсафемутаблелайвдата»
 }
 compileOptions {
 исходная совместимость JavaVersion.VERSION_1_8
 целевая совместимость JavaVersion.VERSION_1_8
 }
 // Для проектов Котлин
 котлиноптионс {
 jvmTarget = "1.8"
 }
}
зависимости {
 // ----- AndroidX
 //Фрагмент и активность
 деф активность_версия = "1.3.1"
 def фрагмент_версия = "1.3.6"
 реализация "androidx.activity:activity-ktx:$activity_version"
 реализация "androidx.fragment:fragment-ktx:$fragment_version"
 //Навигация
 защита nav_version = "2.3.5"
 реализация "androidx.navigation:navigation-fragment-ktx:$nav_version"
 реализация "androidx.navigation:navigation-ui-ktx:$nav_version"
 реализация "androidx. constraintlayout:constraintlayout:2.1.0"
 testImplementation 'junit: junit: 4.12'
 androidTestImplementation 'androidx.test:бегун:1.4.0'
 androidTestImplementation 'androidx.test.espresso: espresso-core: 3.4.0'
 //Материальный дизайн
 реализация 'com.google.android.material:material:1.4.0'
 // Компоненты жизненного цикла
 деф жизненный цикл_версия = "2.3.1"
 реализация "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
 реализация "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
 //Картинки
 реализация 'com.github.bumptech.glide:glide:4.8.0'
 реализация 'com.miguelcatalan:materialsearchview:1.4.0'
 реализация 'de.hdodenhof:circleimageview:3.1.0'
 //Рейтинг бар
 реализация 'com.iarcuschin:simpliratingbar:0.1.5'
 //Карты Гугл
 реализация 'com.google.android.gms:play-services-maps:17.0.1'
 реализация 'com.google.maps.android:android-maps-utils:2.2.0'
 //Биллинг Google
 реализация 'com.android.billingclient:billing:4. 0.0'
 //Сервисы Google Play для определения местоположения
 реализация 'com.google.android.gms:play-services-location:18.0.0'
 //Ядро Google Play для отзывов пользователей
 реализация 'com.google.android.play:core-ktx:1.8.1'
 //Модернизация
 реализация 'com.squareup.retrofit2:retrofit:2.9.0'
 реализация 'com.squareup.retrofit2: конвертер-скаляры: 2.9.0'
 реализация 'com.google.code.gson:gson:2.8.6'
 реализация "com.squareup.retrofit2:converter-moshi:2.9.0"
 реализация("com.squareup.moshi:moshi:1.9.3")
 реализация ("com.squareup.moshi: moshi-адаптеры: 1.8.0")
 kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.6.0'
 реализация "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
 //HTTP-ПЕРЕХОДЧИК:
 реализация 'com.squareup.okhttp3: logging-interceptor: 4.2.1'
 //OSMap
 реализация 'org.osmdroid:osmdroid-android:6.1.1'
 //Подключение
 реализация 'com.github.AppIntro:AppIntro:4.2.3'
 реализация 'agency.tango.android:material-intro-screen:0. 0.5'
 //Планировщик фоновой работы
 реализация "androidx.work:work-runtime-ktx:2.6.0"
 // Сегментированный контроль
 реализация 'info.hoang8f: android-segmented: 1.0.6'
 //ГИФ
 реализация 'pl.droidsonroids.gif: android-gif-drawable: 1.2.16'
 //Подтверждение дат ISO8601 для API < 26
 реализация 'joda-time:joda-time:2.10.4'
 // Установка струн для акцентов
 группа реализации: «org.apache.commons», имя: «commons-lang3», версия: «3.0»
 // Компоненты помещения
 def room_version = "2.3.0"
 реализация "androidx.room:room-ktx:$room_version"
 kapt "androidx.room:room-compiler:$room_version"
 androidTestImplementation "androidx.room:room-testing:$room_version"
 // ВЫБОР ДАТЫ И ВРЕМЕНИ:
 реализация 'com.github.florent37: singledateandtimepicker: 2.2.6'
 //Расширенный календарь
 реализация 'com.applandeo:material-calendar-view:1.7.0'
 //Загрузчики
 реализация 'com.agrawalsuneet.androidlibs:dotsloader:1.4'
 //Масштабируемое изображение
 реализация 'com.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *