Я получаю следующую ошибку в проекте Android-приложения в AndroidStudio:
java.lang.VerifyError: Verifier rejected class CLASSNAME: void CLASSNAME.FKTNAME(ARGS) failed to verify: void CLASSNAME.FKTNAME(ARGS): [0xBEEF] copy1 vXX Companion:Landroidx/compose/runtime/Composer$Companion;
31765: v6, 0x0 # null?
31769: .local v6, "$i$a$-cache-PlayerModernKt$PlayerModern$30$8":I
31780: .end local v6 # "$i$a$-cache-PlayerModernKt$PlayerModern$30$8":I
31988: v6, v69
32271: v6, v69
32488: v10, Lcom/example/app/ui/screens/player/PlayerModernKt$PlayerModern$1;
32490: v1, v10 # PlayerModern$1
32492: v2, p0 # "navController"
32494: v3, p1 # "layoutState"
32496: v4, p2 # "playerState"
32498: v5, v68 # "modifier"
32500: v6, v69 # should be Landroidx/compose/foundation/shape/RoundedCornerShape
32502: v7, p5 # "onDismiss" # Lkotlin/jvm/functions/Function0;
32504: v8, p7 # "$composer" # Landroidx/compose/runtime/Composer;
32506: v9, p8 # ?
Полагаю, ошибка связана со строкой 32500.
В целом проблемы, связанные с компоновкой, кажутся очень сложную вещь для отладки.
Может кто-нибудь объяснить, почему эта старая ошибка была исправлена таким способом и что я могу сделать с новой ошибкой?
РЕДАКТИРОВАТЬ
Это фиксация проекта в той позиции, где возникла проблема. У других людей такой проблемы нет. Проблемный код находится здесь.
Старая проблема была в этом коммите. Я думаю, ошибка была здесь.
Это код ошибки старой проблемы:
https://gist.github.com/twistios /396ef8192cbcb8eb257953d05da52912
Это трассировка стека с новой ошибкой (исходный вариант):
https://gist.github.com/twistios/d4a7b5 ... 313a67aa6b
Следы стека сокращены из-за ограничения на количество символов.
РЕДАКТИРОВАТЬ 2
По какой-то причине проблема, кажется, исчезает в сборке релиза, т. е. вопреки ожиданиям.
РЕДАКТИРОВАТЬ 3
Это конфигурация (отладочной) версии:
release {
manifestPlaceholders += mapOf()
isMinifyEnabled = true
isShrinkResources = true
manifestPlaceholders["appName"] = "RiMusic"
signingConfig = signingConfigs.getByName("debug")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
Я добавил еще один вариант сборки, похожий на релиз (или можно сказать, отладку), но минимальную версию, а затем включил и выключил isDebuggable. При значении true проблема возникает, при значении false нет.
create("debugTest") {
isDebuggable = true
applicationIdSuffix = ".debugtest"
manifestPlaceholders += mapOf()
manifestPlaceholders["appName"] = "RiMusic_DebugTest"
signingConfig = signingConfigs.getByName("debug")
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... ebug-build
Java.lang.VerifyError: верификатор отклонил класс в отладочной сборке ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение