Ошибка компоновки Jetpack ( java.lang.NoSuchMethodError: нет метода интерфейса startRestartGroup )Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка компоновки Jetpack ( java.lang.NoSuchMethodError: нет метода интерфейса startRestartGroup )

Сообщение Anonymous »


Привет, ребята, я сейчас работаю над небольшим проектом, используя зависимость Jetpack Compose и Coil для отображения изображения из viewModel, но в моем приложении возникает такая ошибка:

Нет метода интерфейса startRestartGroup(ILjava/lang/String;)Landroidx/compose/runtime/Composer; в классе Landroidx/compose/runtime/Composer; или его суперклассы (объявление androidx.compose.runtime.Composer' .... на com.google.accompanist.coil.CoilImage__CoilKt.CoilImage(Coil.kt:324) на com.google.accompanist.coil.CoilImage.CoilImage(Coil.kt:1) в PokemonListScreenKt.PokedexEntry(PokemonListScreen.kt:172) в PokemonListScreenKt.PokedexRow(PokemonListScreen.kt:212) в PokemonListScreenKt$PokemonList$1$1.invoke(PokemonListScreen.kt:136) в PokemonListScreenKt$PokemonList$1$1.invoke(PokemonListScreen.kt:132) Я пытался перейти на новую версию зависимостей Coil, но ошибка все равно возникает

вот мой build.gradle(приложение)

плагины { идентификатор 'com.android.application' идентификатор 'org.jetbrains.kotlin.android' идентификатор 'котлин-андроид' идентификатор 'котлин-капт' идентификатор 'dagger.hilt.android.plugin' } андроид { пространство имен «com.example.pokedex» скомпилироватьSdk 34 defaultConfig { идентификатор приложения «com.example.pokedex» минСдк 24 цельSdk 34 Код версии 1 Имя версии "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" векторDrawables { использоватьSupportLibrary true } } типы сборки { выпускать { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } компиляцияварианты { исходная совместимость JavaVersion.VERSION_17 целевая совместимость JavaVersion.VERSION_17 } котлинОпции { jvmTarget = '17' } buildFeatures { сочинять правду } composeOptions { kotlinCompilerExtensionVersion '1.4.6' } Варианты упаковки { Ресурсы { исключает += '/META-INF/{AL2.0,LGPL2.1}' } } } зависимости { реализация «androidx.core:core-ktx:1.8.0» платформа реализации('org.jetbrains.kotlin:kotlin-bom:1.8.0') реализация 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' реализация «androidx.activity:activity-compose:1.5.1» платформа реализации('androidx.compose:compose-bom:2022.10.00') реализация «androidx.compose.ui:ui» реализация «androidx.compose.ui:ui-graphics» реализация «androidx.compose.ui:ui-tooling-preview» реализация «androidx.compose.material3:material3» реализация 'com.google.android.material:material:1.3.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' Платформа androidTestImplementation('androidx.compose:compose-bom:2022.10.00') androidTestImplementation 'androidx.compose.ui:ui-test-junit4' debugImplementation 'androidx.compose.ui:ui-tooling' debugImplementation 'androidx.compose.ui:ui-test-manifest' реализация "androidx.compose.material:material-icons-core:1.5.4" реализация "androidx.compose.material:material-icons-extended:1.5.4" реализация "androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0-beta01" реализация "androidx.navigation:navigation-compose:2.7.5" реализация "androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha13" // Модернизация реализация 'com.squareup.retrofit2:retrofit:2.9.0' реализация 'com.squareup.retrofit2:converter-gson:2.9.0' реализация "com.squareup.okhttp3:okhttp:4.11.0" реализация "com.squareup.okhttp3:logging-interceptor:4.9.0" // Древесина реализация 'com.jakewharton.timber:timber:4.7.1' // Сопрограммы реализация 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3' реализация 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3' // Области жизненного цикла сопрограммы реализация "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1" реализация "androidx.lifecycle:lifecycle-runtime-ktx:2.3.1" // Катушка реализация "io.coil-kt:coil-compose:2.5.0" // реализация("io.coil-kt:coil-compose:1.3.2") //Кинжал - Рукоять kapt "androidx.hilt:hilt-компилятор:1.1.0" kapt("org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0") //Кинжал - Рукоять реализация "com.google.dagger:hilt-android:2.44" kapt "com.google.dagger:hilt-compiler:2.44" реализация 'androidx.hilt:hilt-navigation-compose:1.1.0' kapt("org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0") // Палитра реализация 'androidx.palette:palette-ktx:1.0.0' } // PokemonListScreen.kt

import androidx.compose.foundation.Image импортировать androidx.compose.foundation.background импортировать androidx.compose.foundation.clickable импортировать androidx.compose.foundation.layout.* импортировать androidx.compose.foundation.lazy.LazyColumn импортировать androidx.compose.foundation.shape.CircleShape импортировать androidx.compose.foundation.shape.RoundedCornerShape импортировать androidx.compose.foundation.text.BasicTextField импортировать androidx.compose.material3.CircularProgressIndicator импортировать androidx.compose.material3.MaterialTheme импортировать androidx.compose.material3.Surface импортировать androidx.compose.material3.Text импортировать androidx.compose.runtime.Composable импортировать androidx.compose.runtime.* импортировать androidx.compose.ui.Alignment импортировать androidx.compose.ui.Alignment.Companion.Center импортировать androidx.compose.ui.Alignment.Companion.CenterHorizontally импортировать androidx.compose.ui.Modifier импортировать androidx.compose.ui.draw.clip импортировать androidx.compose.ui.draw.scale импортировать androidx.compose.ui.draw.shadow импортировать androidx.compose.ui.focus.FocusState импортировать androidx.compose.ui.focus.onFocusChanged импортировать androidx.compose.ui.graphics.Brush импортировать androidx.compose.ui.graphics.Color импортировать androidx.compose.ui.graphics.toArgb импортировать androidx.compose.ui.platform.LocalContext импортировать androidx.compose.ui.res.painterResource импортировать androidx.compose.ui.text.TextStyle импортировать androidx.compose.ui.text.style.TextAlign импортировать androidx.compose.ui.unit.dp импортировать androidx.compose.ui.unit.sp импортировать androidx.hilt.navigation.compose.hiltViewModel импортировать androidx.navigation.NavController импортировать катушку.compose.SubcomposeAsyncImage импортировать катушку.запрос.ImageRequest импортировать com.example.pokedex.R импортировать com.example.pokedex.data.models.PokedexListEntry импортировать com.example.pokedex.pokemonList.PokemonListViewModel импортировать com.example.pokedex.ui.theme.RobotoCondensed @Композитный забавный PokemonListScreen( навконтроллер: навконтроллер ) { Поверхность( цвет = MaterialTheme.colorScheme.background, модификатор = Модификатор.fillMaxSize() ) { Столбец { Spacer(модификатор = Modifier.height(20.dp)) Изображение( художник = PainterResource (id = R.drawable.ic_international_pok_mon_logo), contentDescription = "Покемон", модификатор = Модификатор .fillMaxWidth() .align(По центру по горизонтали) ) Панель поиска( подсказка = "Искать...", модификатор = Модификатор .fillMaxWidth() .padding(16.dp) ) { } Spacer(модификатор = Modifier.height(16.dp)) PokemonList (navController = navController) } } } @Композитный забавный SearchBar( модификатор: Модификатор = Модификатор, подсказка: строка = "", onSearch: (String) -> Unit = {} ) { вар текст, помните { mutableStateOf("") } var isHintDisplayed, запомнив { mutableStateOf(подсказка!= "") } Коробка (модификатор = модификатор) { Базовоетекстовое поле( значение = текст, onValueChange = { текст = оно onSearch (оно) }, Макслинес = 1, одиночная линия = правда, textStyle = TextStyle(color = Color.Black), модификатор = Модификатор .fillMaxWidth() .shadow(5.dp, CircleShape) .background(Color.White, CircleShape) .padding(по горизонтали = 20.dp, по вертикали = 12.dp) .onFocusChanged { isHintDisplayed = это != FocusState::isFocused } ) если (isHintDisplayed) { Текст( текст = подсказка, цвет = Цвет.СветлыйСерый, модификатор = Модификатор .padding(по горизонтали = 20.dp, по вертикали = 12.dp) ) } } } @Композитный забавный список покемонов( навконтроллер: Навконтроллер, viewModel: PokemonListViewModel = hiltViewModel() ) { val pokemonList по памяти {viewModel.pokemonList} val endReached, запомнив {viewModel.endReached} val loadError, запомнив {viewModel.loadError} val isLoading, запомнив {viewModel.isLoading} LazyColumn(contentPadding = PaddingValues(16.dp)) { val itemCount = if(pokemonList.size % 2 == 0) { pokemonList.size/2 } еще { pokemonList.size/2 + 1 } предметы (itemCount) { if(it >= itemCount && !endReached) { viewModel.loadPokemonPaginated() } PokedexRow(rowIndex = it, elements = pokemonList, navController = navController) } } } @Композитный весело PokedexEntry( запись: PokedexListEntry, навконтроллер: Навконтроллер, модификатор: Модификатор = Модификатор, viewModel: PokemonListViewModel = hiltViewModel() ) { val defaultDominantColor = MaterialTheme.colorScheme.surface var доминантный цвет, помните { mutableStateOf (по умолчаниюDominantColor) } Коробка( contentAlignment = Центр, модификатор = модификатор .shadow(5.dp, RoundedCornerShape(10.dp)) .clip(RoundedCornerShape(10.dp)) .aspectRatio(1f) .фон( Кисть.verticalGradient( Список( доминирующий цвет, по умолчаниюДоминантныйцвет ) ) ) .кликабельный { navController.navigate("pokemon_detail_screen/${dominantColor.toArgb()}/${entry.pokemonName}") } ) { Столбец { SubcomposeAsyncImage( модель = ImageRequest.Builder(LocalContext.current) .data(entry.imageUrl) .цель { viewModel.calcDominantColor(it) { цвет -> доминирующийЦвет = цвет } } .crossfade(истина) .строить(), contentDescription = запись.имя покемона, модификатор = Модификатор .size(120.dp) .align(По центру по горизонтали) ) { ЦиркулярПрогрессИндикатор( цвет = MaterialTheme.colorScheme.primary, модификатор = Modifier.scale(0.5f) ) } Текст( текст = запись.pokemonName, FontFamily = RobotoCondensed, размер шрифта = 20.sp, textAlign = TextAlign.Центр, модификатор = Модификатор.fillMaxWidth() ) } } } @Композитный весело PokedexRow( индекс строки: Целое, записи: List, навконтроллер: навконтроллер ) { Столбец { Ряд { PokedexEntry( запись = записи[rowIndex * 2], navController = navController, модификатор = Modifier.weight(1f) ) Spacer(модификатор = Modifier.width(16.dp)) if (entries.size >= rowIndex * 2 + 2) { PokedexEntry( запись = записи[rowIndex * 2 + 1], navController = navController, модификатор = Modifier.weight(1f) ) } еще { Spacer(модификатор = Modifier.weight(1f)) } } Spacer(модификатор = Modifier.height(16.dp)) } } Надеюсь, кто-нибудь поможет мне найти решение этой проблемы, спасибо
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»