Какие основные параметры имеет транзистор КТ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-250 | 30 В |
КТ342Б | 200-500 | 25 В |
КТ342В | 400-1000 | 10 В |
КТ342Г | 50-120 | 60 В |
Как видим, модификации позволяют выбрать оптимальное сочетание коэффициента усиления и максимального напряжения для конкретной схемы.
Область применения транзистора КТ342
Благодаря своим характеристикам, транзистор КТ342 находит широкое применение в различных электронных устройствах:
- Усилители высокой и промежуточной частоты
- Генераторы и преобразователи частоты
- Импульсные схемы
- Переключающие устройства
- Маломощные стабилизаторы напряжения
- Схемы управления в автоматике
Универсальность КТ342 позволяет использовать его как в аналоговых, так и в цифровых схемах, что делает его популярным выбором для разработчиков электроники.
Конструкция и корпус транзистора КТ342
- Металлостеклянный корпус (КТ342А, КТ342Б, КТ342В, КТ342Г)
- Пластмассовый корпус (КТ342АМ, КТ342БМ, КТ342ВМ)
Вес транзистора в металлостеклянном корпусе не превышает 0.5 г, в пластмассовом — 0.3 г. Какие преимущества дает каждый тип корпуса?
- Металлостеклянный корпус обеспечивает лучший теплоотвод и экранирование
- Пластмассовый корпус дешевле в производстве и легче
Выбор типа корпуса зависит от конкретного применения транзистора и требований к устройству.
Маркировка транзистора КТ342
Для идентификации транзисторов КТ342 используется несколько способов маркировки:
- Буквенно-цифровое обозначение на корпусе (например, КТ342А)
- Цветовая маркировка (для пластмассовых корпусов):
- КТ342АМ: синяя метка на боковой части, тёмно-красная на торце
- КТ342БМ: синяя метка на боковой части, жёлтая на торце
- КТ342ВМ: синяя метка на боковой части, тёмно-зелёная на торце
- Условные обозначения (для пластмассовых корпусов):
- КТ342АМ: буква А и треугольник
- КТ342БМ: буква Б и треугольник
- КТ342ВМ: буква В и треугольник
Правильная идентификация транзистора важна для обеспечения корректной работы схемы и предотвращения ошибок при замене компонентов.
Аналоги транзистора КТ342
При необходимости замены КТ342 можно использовать ряд аналогов. Вот некоторые из них:
- КТ342А: BC107A, 2N929, 2SC3879S
- КТ342Б: 2SC454B, 2SC55, 2SC4618Q
- КТ342В: BC107B, 2SC4998, 2SC4997
- КТ342Г: BC239B, KTN5019, KTC383
При выборе аналога нужно учитывать не только основные параметры, но и особенности конкретной схемы. Как правильно подобрать аналог?
- Проверить частотные характеристики
- Убедиться в совместимости корпуса и выводов
- Протестировать работу схемы с выбранным аналогом
Правильный выбор аналога позволит сохранить работоспособность устройства при отсутствии оригинального компонента.
Особенности применения транзистора КТ342 в схемах
При использовании КТ342 в электронных схемах следует учитывать некоторые особенности:
- Чувствительность к статическому электричеству
- Зависимость параметров от температуры
- Необходимость обеспечения правильного теплоотвода
- Влияние паразитных емкостей на высоких частотах
Как обеспечить оптимальную работу КТ342 в схеме? Вот несколько рекомендаций:
- Использовать антистатические меры предосторожности при монтаже
- Обеспечить температурную стабилизацию схемы
- При необходимости применять радиаторы для отвода тепла
- Минимизировать длину проводников в высокочастотных цепях
- Учитывать разброс параметров и при необходимости производить отбор транзисторов
Соблюдение этих рекомендаций поможет создать надежное и эффективно работающее устройство на базе транзистора КТ342.
Поиск по сайту Новости DC/DC с током потребления 7 мкА | ГЛАВНАЯ » ТРАНЗИСТОРЫ » КТ342 Транзистор КТ342 — универсальный, структуры n-p-n, эпитаксиально-планарный, кремниевый. Основное применение — импульсные устройства.
Существует также маркировка цветными метками.
Металлостеклянные транзисторы весят не более 0.5 г, пластмассовые не более 0.3 г. КТ342 цоколевкаЦоколевка КТ342 показана на рисунке. Электрические параметры КТ342
Предельные эксплуатационные показатели КТ342
|
Транзистор КТ342 — DataSheet
Перейти к содержимому
Цоколевка транзистора КТ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.