play-games-plugin-for-unity
play-games-plugin-for-unity copied to clipboard
Crash: android.app.ActivityThread.performLaunchActivity
I have too many crashes: "android.app.ActivityThread.performLaunchActivity". Can't reproduce on my device.
Here's stack trace: `Fatal Exception: java.lang.Error FATAL EXCEPTION [main] Unity version : 2020.3.38f1 Device model : TECNO MOBILE LIMITED TECNO KG5n Device fingerprint: TECNO/F062RU/TECNO-KG5n:11/RP1A.201005.001/RU-V022-20220417:user/release-keys Build Type : Release Scripting Backend : IL2CPP ABI : arm64-v8a Strip Engine Code : true
Caused by java.lang.RuntimeException Unable to start activity ComponentInfo{com.xxx.xxx/com.google.android.gms.games.internal.v2.resolution.GamesResolutionActivity}: android.content.ActivityNotFoundException: No Activity found to handle null android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3529) android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3713) android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85) android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage (ActivityThread.java:2135) android.os.Handler.dispatchMessage (Handler.java:106) android.os.Looper.loop (Looper.java:268) android.app.ActivityThread.main (ActivityThread.java:8011) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:635) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)
Caused by android.content.ActivityNotFoundException No Activity found to handle null android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:2076) android.app.Activity.startIntentSenderForResultInner (Activity.java:5670) android.app.Activity.startIntentSenderForResult (Activity.java:5636) android.app.Activity.startIntentSenderForResult (Activity.java:5603) com.google.android.gms.games.internal.v2.resolution.GamesResolutionActivity.onCreate (com.google.android.gms:play-services-games-v2@@17.0.0:6) android.app.Activity.performCreate (Activity.java:8107) android.app.Activity.performCreate (Activity.java:8090) android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1309) android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3499) android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3713) android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85) android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage (ActivityThread.java:2135) android.os.Handler.dispatchMessage (Handler.java:106) android.os.Looper.loop (Looper.java:268) android.app.ActivityThread.main (ActivityThread.java:8011) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:635) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)`
Versions
- Unity version: 2020.3.38
- Google Play Games Plugin for Unity version: 11.01
Hi, are you using any proguard rules? Also you mention that you can't reproduce it on your device. Have you tried making a release build and running it on your test device?
Hi, I always test by adding release builds to the Play Console internal test in order to get Play Services work.
I have "proguard-user.txt" file. Here it is:
`-keep class com.yasirkula.unity.* { ; }
-keep class com.google.android.gms.games.leaderboard.* { ; }
-keep class com.google.android.gms.games.snapshot.* { ; }
-keep class com.google.android.gms.games.achievement.* { ; }
-keep class com.google.android.gms.games.event.* { ; }
-keep class com.google.android.gms.games.stats.* { ; }
-keep class com.google.android.gms.games. { ; }
-keep class com.google.android.gms.common.api.ResultCallback { ; }
-keep class com.google.android.gms.signin. { ; }
-keep class com.google.android.gms.dynamic.* { ; }
-keep class com.google.android.gms.dynamite.* { ; }
-keep class com.google.android.gms.tasks.* { ; }
-keep class com.google.android.gms.security.* { ; }
-keep class com.google.android.gms.base.* { ; }
-keep class com.google.android.gms.actions.* { ; }
-keep class com.google.games.bridge.* { ; }
-keep class com.google.android.gms.common.ConnectionResult { ; }
-keep class com.google.android.gms.common.GooglePlayServicesUtil { ; }
-keep class com.google.android.gms.common.api. { ; }
-keep class com.google.android.gms.common.data.DataBufferUtils { ; }
-keep class com.google.android.gms.nearby. { ; }
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
public ;
}
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator ;
}
-keep class com.ironsource.adapters. { ;
}
-dontwarn com.ironsource.mediationsdk.
-dontwarn com.ironsource.adapters.*
-keepattributes JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface
-keepattributes Signature,InnerClasses,Exceptions,Annotation -keep public class com.applovin.sdk.AppLovinSdk{ ; } -keep public class com.applovin.sdk.AppLovin { public protected ; } -keep public class com.applovin.nativeAds.AppLovin { public protected ; } -keep public class com.applovin.adview. { public protected ; } -keep public class com.applovin.mediation. { public protected ; } -keep public class com.applovin.mediation.ads. { public protected ; } -keep public class com.applovin.impl..AppLovin { public protected *; } -keep public class com.applovin.impl..Impl { public protected ; } -keepclassmembers class com.applovin.sdk.AppLovinSdkSettings { private java.util.Map localSettings; } -keep class com.applovin.mediation.adapters. { *; } -keep class com.applovin.mediation.adapter.{ *; }
-keepattributes Annotation -dontobfuscate `
Could you try adding -keep class com.google.android.gms.games.internal.v2.resolution.* { ; }
? This might solve your problem.
@ozdemir08 thank you, I will try it.
@ozdemir08 hi, I've tried to release the version with changes and the issue still persist. So, adding "keep class" doesn't help.
btw I can see that it started after upgrading to v11.01
I tried, but it doesn't help. I still have this issue.
чт, 1 сент. 2022 г., 18:07 Mehmet Ozdemir @.***>:
Could you try adding -keep class com.google.android.gms.games.internal.v2.resolution.* { ; }? This might solve your problem.
— Reply to this email directly, view it on GitHub https://github.com/playgameservices/play-games-plugin-for-unity/issues/3184#issuecomment-1234412826, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB77GAIVSAXHWOK7FJKHSKDV4DBELANCNFSM57PJMBYA . You are receiving this because you authored the thread.Message ID: <playgameservices/play-games-plugin-for-unity/issues/3184/1234412826@ github.com>
So any news on the fix? Have you reproduced the issue?
I can still see the crashes. Any news?
@ozdemir08 are you still seeing notifications? Or can somebody help with the issue?
Look I found several variants to fix the issue. Need somebody from engeeniring team to tell me if at least one of these is the proper fix.
-
Found here: https://stackoverflow.com/questions/74146679/google-play-games-v2-missing-gamesresolutionactivity-error The solution is to add the following snippet to the AndroidManifest.xml file
-
Use GPGS only after this check: isGooglePlayServicesAvailable()
Any updates on this?
No updates. I even slightly changed proguard file, but the issue still exist. New version of proguard:
-keep class com.yasirkula.unity.* { *; }
-keep class com.google.android.gms.games.PlayGames { *; }
-keep class com.google.android.gms.games.leaderboard.** { *; }
-keep class com.google.android.gms.games.snapshot.** { *; }
-keep class com.google.android.gms.games.achievement.** { *; }
-keep class com.google.android.gms.games.event.** { *; }
-keep class com.google.android.gms.games.stats.** { *; }
-keep class com.google.android.gms.games.video.** { *; }
-keep class com.google.android.gms.games.* { *; }
-keep class com.google.android.gms.common.api.ResultCallback { *; }
-keep class com.google.android.gms.signin.** { *; }
-keep class com.google.android.gms.dynamic.** { *; }
-keep class com.google.android.gms.dynamite.** { *; }
-keep class com.google.android.gms.tasks.** { *; }
-keep class com.google.android.gms.security.** { *; }
-keep class com.google.android.gms.base.** { *; }
-keep class com.google.android.gms.actions.** { *; }
-keep class com.google.games.bridge.** { *; }
-keep class com.google.android.gms.common.ConnectionResult { *; }
-keep class com.google.android.gms.common.GooglePlayServicesUtil { *; }
-keep class com.google.android.gms.common.api.** { *; }
-keep class com.google.android.gms.common.data.DataBufferUtils { *; }
-keep class com.google.android.gms.games.quest.** { *; }
-keep class com.google.android.gms.nearby.** { *; }
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
public *;
}
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class com.ironsource.adapters.** { *;
}
-dontwarn com.ironsource.mediationsdk.**
-dontwarn com.ironsource.adapters.**
-keepattributes JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keep class com.google.unity.** {
*;
}
-keep public class com.google.android.gms.ads.**{
public *;
}
-keep public class com.google.ads.**{
public *;
}
-keep,includedescriptorclasses public class com.google.** { *; }
-keep class com.onesignal.** { *; }
-keepattributes *Annotation*
-dontobfuscate
As above, the problem occurs in the method startIntentSenderForResult. I don't know what the resultReceiver is, but it should at least catch the exception of ActivityNotFound, but obviously, it doesn't.