TGViewer
Everlasting Loops Everlasting Loops @loops_everlasting · 565 subscribers
Post #9 884
Everlasting Loops LinkageError На днях готовил к релизу наш SDK для Unity. И всё должно было быть просто, потому что это обертка над нативными, самое сложное позади А на нативном SDK для Android у нас есть UI-фича, которая сделана на Compose И вот при взаимодействии с ней…
Разгадка

Дело в том, что гугл не отстает и тоже переводит свои библиотеки на KMP – таким образом, у артефакта есть какой-то общий id (например, lifecycle-viewmodel), а для конкретного таргета уже выбирается зависимость с соответствующим суффиксом. В итоге некоторые транзитивные зависимости зарезолвились как-то так:


+--- androidx.compose.material3:material3-desktop:{strictly 1.3.0} -> 1.3.0 (c)
+--- androidx.lifecycle:lifecycle-viewmodel-compose-desktop:{strictly 2.8.0} -> 2.8.0 (c)
+--- androidx.compose.ui:ui-jvmstubs:{strictly 1.7.2} -> 1.7.2 (c)


Только суффикс должен был быть -android.

Напишите, кстати, в комменты, кто сталкивался с таким. Кажется, что это не очень тривиально – практически все пишут на котлине, и когда мы подключаем Kotlin Gradle plugin в модуль, зависимости резолвятся с ожидаемым суффиксом:


+--- androidx.compose.material3:material3-android:{strictly 1.3.0} -> 1.3.0 (c)
+--- androidx.lifecycle:lifecycle-viewmodel-compose-android:{strictly 2.8.3} -> 2.8.3 (c)
+--- androidx.compose.ui:ui-android:{strictly 1.7.2} -> 1.7.2 (c)


Бридж, который связывает слой нативного андроида и Unity, был написан на Java; Kotlin-плагина в проекте не было вообще.

Ну а дальше всё просто: каких-то сущностей не оказалось в -desktop/-jvmstubs–артефактах –> в рантайме был крэш с LinkageError.

P.S. Начиная с AGP 8.4 такой проблемы больше нет. На проекте был 8.3
  • 👍 2
  • 🔥 1
More from @loops_everlasting
  1. Jul 23, 2025невероятный успех #pull_request
  2. Jul 23, 2025Так выглядел вайбкодинг с Kiro (мем мой)
  3. Jul 23, 2025Post #25
  4. Jul 23, 2025Кстати, если вдруг хотите еще на кого-нибудь подписаться, есть целая папка с годными канал…
  5. Jul 23, 2025Пока готовил пост, заметил, что забыл в автокомплите точку с запятой
  6. Jul 23, 2025Еще к первому посту про плагин в комментарии прилетел фича-реквест от Асхара из канала Пол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →