dotnet/aspnetcore

[Java Client] No proguard file declaring that we need to keep class members

Open

#53,238 创建于 2024年1月9日

在 GitHub 查看
 (2 评论) (2 反应) (0 负责人)C# (10,653 fork)batch import
area-signalrhelp wanted

仓库指标

Star
 (37,933 star)
PR 合并指标
 (平均合并 16天 9小时) (30 天内合并 258 个 PR)

描述

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

All Android apps with updated tooling will now use R8 full mode. I do however find it odd that this issue is only occuring for me but I'll post it here and see whether it gets upvoted or not.

TL;DR: Minified app does not get SignalR messages. Reason seems to be the class com.microsoft.signalr.HandshakeResponseMessage.

Expected Behavior

Solution is to add the following to either your app's proguard file or if you have a more module heavy project like I do, add it to your consumer file: -keepclassmembers class com.microsoft.signalr.HandshakeResponseMessage

This could of coarse be me doing something wrong but keeping the class members of this particular class works and I can't find any proguard rules in this repository for the java client or when inspecting the library files.

The rule can likely be more specific and the SignalR client is still quite new to me but figured there must be someone else out there struggling with this 😅

Steps To Reproduce

Android project with minification enabled that subscribes to some SignalR channel.

Exceptions (if any)

None actually. This was a very frustrating thing to figure out as the issue was silent.

.NET Version

No response

Anything else?

SignalR java client versions tested: 8.0.0, 7.0.0 and 7.0.14 Android Gradle Plugin: 8.1.4

贡献者指南