Недопустимое переопределение, приложение аварийно завершает работу с AbstractMethodError.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Недопустимое переопределение, приложение аварийно завершает работу с AbstractMethodError.

Сообщение Anonymous »

Я работаю над чем-то вроде структуры навигации для своего приложения, и теперь передо мной стоит простая задача — сделать так, чтобы некоторый контейнер в суперклассе переопределялся его дочерними элементами, но когда кажется, что он не переопределяет метод, когда я добавляю универсальный вариант виртуальной машины к методу и вылетает с AbstractMethodError, это выглядит как невозможное.
Это работает так, как должно работать, методы переопределяются
Но в данном случае абстрактный класс, в котором функция пытается вызвать абстрактный метод и терпит неудачу. Если я изменю его на open, он будет работать так, как будто он не переопределен, даже если он переопределен

Код: Выделить всё

FATAL EXCEPTION: main
Process: com.rus_artur4ik.veterinarian, PID: 21406
java.lang.AbstractMethodError:  abstract method "void com.rus_artur4ik.petcore.mvvm.lce.LceScreen.SomeFun(com.rus_artur4ik.petcore.mvvm.lce.LceViewModel, kotlin.jvm.functions.Function2, androidx.compose.runtime.Composer,  i n t ) & q u o t ; < b r   / >         a t   c o m . r u s _ a r t u r 4 i k . p e t c o r e . m v v m . l c e . L c e S c r e e n . C o n t e n t ( L c e S c r e e n . k t : 1 5 ) < b r   / >         a t   c o m . r u s _ a r t u r 4 i k . p e t c o r e . m v v m . l c e . L c e S c r e e n . C o n t e n t ( L c e S c r e e n . k t : 9 ) < b r   / >         a t   c o m . r u s _ a r t u r 4 i k . p e t c o r e . m v v m . M v v m S c r e e n . C o n t e n t ( M v v m S c r e e n . k t : 1 7 ) < b r   / >         a t   c o m . r u s _ a r t u r 4 i k . p e t c o r e . n a v i g a t i o n . N a v i g a t o r $ r e g i s t e r S c r e e n $ 1 . i n v o k e ( N a v i g a t o r . k t : 9 8 ) < b r   / >         a t   c o m . r u s _ a r t u r 4 i k . p e t c o r e . n a v i g a t i o n . N a v i g a t o r $ r e g i s t e r S c r e e n $ 1 . i n v o k e ( N a v i g a t o r . k t : 9 8 ) < b r   / >         a t   a n d r o i d x . c o m p o s e . r u n t i m e . i n t e r n a l . C o m p o s a b l e L a m b d a I m p l . i n v o k e ( C o m p o s a b l e L a m b d a . j v m . k t : 1 1 6 ) < b r   / >         a t   a n d r o i d x . c o m p o s e . r u n t i m e . i n t e r n a l . C o m p o s a b l e L a m b d a I m p l . i n v o k e ( C o m p o s a b l e L a m b d a . j v m . k t : 3 4 ) < b r   / >         a t   a n d r o i d x . n a v i g a t i o n . c o m p o s e . N a v H o s t K t $ N a v H o s t $ 4 $ 2 . i n v o k e ( N a v H o s t . k t : 1 7 3 ) < b r   / >         a t   a n d r o i d x . n a v i g a t i o n . c o m p o s e . N a v H o s t K t $ N a v H o s t $ 4 $ 2 . i n v o k e ( N a v H o s t . k t : 1 7 2 ) < b r   / >         a t   a n d r o i d x . c o m p o s e . r u n t i m e . i n t e r n a l . C o m p o s a b l e L a m b d a I m p l . i n v o k e ( C o m p o s a b l e L a m b d a . j v m . k t : 1 0 7 ) < b r   / >         a t   a n d r o i d x . c o m p o s e . r u n t i m e . i n t e r n a l . C o m p o s a b l e L a m b d a I m p l . i n v o k e ( C o m p o s a b l e L a m b d a . j v m . k t : 3 4 ) < b r   / >         a t   a n d r o i d x . c o m p o s e . r u n t i m e . C o m p o s i t i o n L o c a l K t . C o m p o s i t i o n L o c a l P r o v i d e r ( C o m p o s i t i o n L o c a l . k t : 2 2 8 ) < b r   / >         a t   a n d r o i d x . c o m p o s e . r u n t i m e . s a v e a b l e . S a v e a b l e S t a t e H o l d e r I m p l . S a v e a b l e S t a t e P r o v i d e r ( S a v e a b l e S t a t e H o l d e r . k t : 8 4 ) < b r   / >         a t   a n d r o i d x . n a v i g a t i o n . c o m p o s e . N a v B a c k S t a c k E n t r y P r o v i d e r K t . S a v e a bleStateProvider(NavBackStackEntryProvider.kt:65)
at androidx.navigation.compose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)
at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:52)
at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.navigation.compose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:47)
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:172)
at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:146)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.animation.CrossfadeKt$Crossfade$5$1.invoke(Crossfade.kt:133)
at androidx.compose.animation.CrossfadeKt$Crossfade$5$1.invoke(Crossfade.kt:128)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:142)
at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:73)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:146)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:13)
at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:10)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:162)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2443)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2711)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3342)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3320)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:341)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
2023-05-05 21:36:11.128 21406-21406 AndroidRuntime          com.rus_artur4ik.veterinarian        E      at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3320)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:3285)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:772)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:1047)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:124)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:541)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:510)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:34)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:109)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1317)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1328)
at android.view.Choreographer.doCallbacks(Choreographer.java:940)
at android.view.Choreographer.doFrame(Choreographer.java:869)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1302)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8180)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:946)
Suppressed:  kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@65cda6b, androidx.compose.ui.platform.MotionDurationScaleImpl@9d7c9c8, StandaloneCoroutine{Cancelling}@90c0a61, AndroidUiDispatcher@d502986]

Вот мой класс:

Код: Выделить всё

abstract class LceScreen(
viewModelClass: Class
): MvvmScreen(viewModelClass) {

@Composable
final override fun Content(viewModel: VM) {
SomeFun(vm = viewModel) {
when (val state = viewModel.state) {
is Loading -> Loading(
viewModel = viewModel
)

is Content -> Content(
content = state.content,
viewModel = viewModel
)

is Error -> Error(
throwable = state.throwable,
viewModel = viewModel
)
}
}
}

@Composable
protected abstract fun SomeFun(vm: VM, content: @Composable () -> Unit)

@Composable
protected abstract fun Loading(
viewModel: VM
)

@Composable
protected abstract fun Content(
content: S,
viewModel: VM
)

@Composable
protected abstract fun Error(
throwable: Throwable,
viewModel: VM
)
}
AGP 8.1.0-beta01
KGP 1.8.0
Есть идеи, что может быть не так?
Большое спасибо!Я пытался очистить, перестроить, удалить папки build и .gradle, удалить папку /.gradle/cache

Подробнее здесь: https://stackoverflow.com/questions/761 ... ethoderror
Ответить

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

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

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

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

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