Android media3 Gradle 8.4 AGP 8.3.0Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android media3 Gradle 8.4 AGP 8.3.0

Сообщение Anonymous »

Я использую media3 в приложении для Android уже большую часть года. Вчера я обновил gradle до 8.4 и плагин Android Gradle до 8.3.0. Я прогнал его через ряд тестов, в том числе запустил QA-сборку, которая его запутывает. Все выглядело хорошо. Я опубликовал это. Это был краш-фестиваль. Пользователи без сбоев 5%. Фу. Как только мы подключимся к сервису (насколько я могу судить, помните, что я не могу воспроизвести это локально).

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

Fatal Exception: java.lang.IllegalAccessError: Illegal class access: 'G2.c2' attempting to access 'com.google.common.util.concurrent.ImmediateFuture' (declaration of 'G2.c2' appears in base.apk)
at androidx.media3.session.MediaSessionStub.lambda$queueSessionTaskWithPlayerCommandForControllerInfo$13(MediaSessionStub.java:338)
at androidx.media3.session.ConnectedControllersManager.lambda$flushCommandQueue$2(ConnectedControllersManager.java:277)
at androidx.media3.session.MediaSessionImpl.lambda$callWithControllerForCurrentRequestSet$3(MediaSessionImpl.java:318)
at androidx.media3.common.util.Util.postOrRun(Util.java:761)
at androidx.media3.session.ConnectedControllersManager.flushCommandQueue(ConnectedControllersManager.java:271)
at androidx.media3.session.ConnectedControllersManager.flushCommandQueue(ConnectedControllersManager.java:252)
at androidx.media3.session.MediaSessionStub.lambda$flushCommandQueue$64(MediaSessionStub.java:1653)
at androidx.media3.common.util.Util.postOrRun(Util.java:761)
at androidx.media3.session.MediaSessionStub.flushCommandQueue(MediaSessionStub.java:1651)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.flushCommandQueue(MediaControllerImplBase.java:3290)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.handleMessage(MediaControllerImplBase.java:3283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8294)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)
Ни один мой код не находится в трассировке стека (это всегда весело). Я не могу быть единственным, кто использует media3 и новые версии инструментов, не так ли? Следует отметить одну вещь: я публикую пакет приложений, а магазин приложений создает настоящие APK. Я использую media3 1.2.1 (и в течение нескольких выпусков не было никаких серьезных проблем). Я думал, что это могло быть какое-то другое изменение, которое я сделал, но возврат инструментов сборки определенно исправил это. Я сделал один внутренний релиз, в котором это было единственное изменение, и именно он снова начал работать.
Итак, у меня большой вопрос: почему? Android Studio заставляет меня обновить инструменты. Но мне действительно нужно знать, что произошло и что с этим делать. Поскольку он работает локально (даже с включенным минимизацией), это определенно похоже на проблему R8/Proguard. Прошло много времени с тех пор, как я сталкивался с проблемами R8/Proguard, которые я не мог воспроизвести с помощью сборки qa (которая по сути представляет собой сборку выпуска, подписанную ключом отладки).

Подробнее здесь: https://stackoverflow.com/questions/781 ... -agp-8-3-0
Ответить

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

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

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

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

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