From d04c55f39aef87b1d47831e139488d2aaaaf2211 Mon Sep 17 00:00:00 2001 From: Jakub Zerko Date: Thu, 19 Feb 2026 09:33:56 +0100 Subject: [PATCH] fix: R8 keep rules for JNA and AVS/WebRTC to prevent login crash --- app/proguard-rules.pro | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index cd13ad572b..dfde7f7805 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -46,6 +46,22 @@ -dontwarn java.awt.GraphicsEnvironment -dontwarn java.awt.HeadlessException -dontwarn java.awt.Window +-keep class com.sun.jna.** { *; } +-keep class * extends com.sun.jna.** { *; } +-keepclassmembers class com.sun.jna.Pointer { long peer; } + +# AVS/WebRTC classes are accessed from native code (FlowManager_attach). +# Keep concrete names and members to avoid NoSuchMethodError/ClassNotFoundException at runtime. +-keep class org.webrtc.** { *; } +-keep class com.waz.call.FlowManager { *; } +-keep class com.waz.avs.VideoRenderer { *; } +-keep class com.waz.call.CaptureDevice { *; } +-keep class com.waz.media.manager.** { *; } +-keep class com.waz.service.call.** { *; } +-keep class com.waz.soundlink.SoundLinkAPI { *; } +-dontwarn org.webrtc.CalledByNative +-dontwarn org.webrtc.JniCommon +-dontwarn org.webrtc.audio.AudioDeviceModule # Room/WorkManager instantiate generated DB classes via reflection. # Keep *_Impl classes (including constructors) to avoid startup crash