Android media3 Gradle 8.4 AGP 8.3.0

问题描述 投票:0回答:1

我已经在 Android 应用程序中使用 media3 一年多了。昨天我将 gradle 更新到 8.4,将 Android Gradle 插件更新到 8.3.0。我对它进行了一系列测试,包括运行一个对其进行混淆的质量保证构建。一切看起来都很好。我发表了。这是一场崩溃。无崩溃用户 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 和新版本工具的人,不是吗?需要注意的一件事是,我发布了一个应用程序包,Play 商店构建了实际的 APK。我正在使用 media3 1.2.1(并且已经发布了几个版本,没有任何大问题)我认为这可能是我所做的其他一些更改,但恢复构建工具肯定修复了它。我发布了一个内部版本,这是唯一的更改,也是重新开始工作的版本。

所以我的大问题是为什么? Android Studio 催促我更新工具。但我真的需要知道发生了什么以及该怎么办。由于它在本地工作(即使打开了 minify),所以肯定会感觉到 R8/Proguard 问题。自从我遇到 R8/Proguard 问题以来已经有一段时间了,我无法使用 qa 构建重现这些问题(这基本上是使用调试密钥签名的发布版本)。

android android-gradle-plugin android-media3
1个回答
0
投票

有同样的问题。解决方法是从 proguard 中排除 media3 会话文件

-保留类 androidx.media3.session.** { *; }

© www.soinside.com 2019 - 2024. All rights reserved.