Proguard rules for Jetpack GameActivity

Viewed 25

I'm trying to use Jetpack GameActivity in my project, but I encounter a strange issue with Proguard. My project has 2 modules, app and my-lib:

  • my-lib module has MyActivity which extends GameActivity:

    api 'androidx.games:games-activity:1.2.1'

  • app module has MainActivity which extends MyActivity from my-lib module

    implementation project(":my-lib")

When I built my project in Release build and had Proguard enabled, I got a native crash:

  • Abort message: 'Unable to find method setWindowFlags'

=> I tried inspecting GameActivity class from my APK, setWindowFlags method didn't exist at all, which means Proguard has removed it, that's why the native part of the GameActivity library couldn't find the method and it threw an error.

Then, I tried to fix it, by adding Proguard rule like this:

  • -keep, includedescriptorclasses class com.google.androidgamesdk.GameActivity { *; }

But unfortunately, I got another native crash:

  • Abort message: 'Unable to find field left'

=> Why does this happen? I tried inspecting the APK again, but have no idea why

Anyway, how can I deal with this situation? Does Jetpack GameActivty need to add Proguard rules to keep methods that will be used by the native part?

0 Answers
Related