Closed wangjinzhong closed 4 years ago
@wangjinzhong What version of Unity plugin were you using. We have a Firebase backwards incompatible fix in v2.2.0. Please try to use it instead. Thanks!
I use the latest version of v2.2.0, and now it can be repoduced on one of my test device. After I install the app, it crashes the first time lanch, but it will be OK the second time lanch.
@wangjinzhong Did you change your Android libraries searching path? FlurryMessageListenerService.class
is included in the $ProjRoot/Assets/Plugins/Android/flurry-marketing.aar
.
$jar xf $ProjRoot/Assets/Plugins/Android/flurry-marketing.aar
$jar xf classes.jar
$find . -name 'FlurryMessageListenerService*'
./com/flurry/android/marketing/messaging/FCM/FlurryMessageListenerService.class
Please verify your Android libraries searching path, and include the original Unity default path in your modified one.
@poting-oath No, all the other activities and services are OK, and the FlurryMessageListenerService.class
is missing the first time launch. Now I use the v1.1.0 sdk, everything is OK.
Probably Firebase Push and Flurry Push have some conflict here. If you do not use Flurry Push in your app, please remove the following files (Flurry Push library) from your project to see whether the problem will be resolved or not.
$PROJ_ROOT/Assets/Plugins/Android/flurry-marketing.aar
$PROJ_ROOT/Assets/Plugins/Android/flurry-unity.aar
@wangjinzhong What Firebase Messaging version are you using? Flurry 2.2.0 needs to use the latest Firebase releases (Firebase has some backward incompatible APIs).
@poting-oath I am not use Firebase Messaging. I integrate the Firebase Analytics``Firebase Crashlytics``Firebase RemoteConfig
, all are the latest version. I only try remove flurry-maketing.aar
, the flurry-unity.aar
crashes. I will try again later, thanks.
Hello,
I have the same problem. I dont use Flurry Messaging
and Firebase Messaging
, only using Flurry Analytics
, Firebase Analytics
, Firebase Crashlytics
and Firebase RemoteConfig
.
Here are some logs:
430 I art : Rejecting re-init on previously-failed class java.lang.Class<com.flurry.android.marketing.messaging.FCM.FlurryMessageListenerService>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/FirebaseMessagingService;
430 I art : at java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
430 I art : at java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742)
430 I art : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362)
430 I art : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
430 I art : at void android.app.ActivityThread.handleCreateService(android.app.ActivityThread$CreateServiceData) (ActivityThread.java:3174)
430 I art : at void android.app.ActivityThread.-wrap5(android.app.ActivityThread, android.app.ActivityThread$CreateServiceData) (ActivityThread.java:-1)
430 I art : at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1568)
430 I art : at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
430 I art : at void android.os.Looper.loop() (Looper.java:154)
430 I art : at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6125)
430 I art : at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
430 I art : at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:893)
430 I art : at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:783)
430 I art : Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.messaging.FirebaseMessagingService" on path: DexPathList[[zip file "/data/app/myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/myapp-1/lib/arm, /data/app/myapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /data/downloads, /data/priv-downloads]]
430 I art : at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
430 I art : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
430 I art : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
430 I art : at java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
430 I art : at java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742)
430 I art : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362)
430 I art : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
430 I art : at void android.app.ActivityThread.handleCreateService(android.app.ActivityThread$CreateServiceData) (ActivityThread.java:3174)
430 I art : at void android.app.ActivityThread.-wrap5(android.app.ActivityThread, android.app.ActivityThread$CreateServiceData) (ActivityThread.java:-1)
430 I art : at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1568)
430 I art : at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
430 I art : at void android.os.Looper.loop() (Looper.java:154)
430 I art : at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6125)
430 I art : at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
430 I art : at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:893)
430 I art : at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:783)
And here is the crash logs:
5430 E AndroidRuntime: FATAL EXCEPTION: main
5430 E AndroidRuntime: Process: myapp, PID: 5430
5430 E AndroidRuntime: java.lang.Error: FATAL EXCEPTION [main]
5430 E AndroidRuntime: Unity version : 2018.4.12f1
5430 E AndroidRuntime: Device model : OnePlus ONEPLUS A5000
5430 E AndroidRuntime: Device fingerprint: OnePlus/OnePlus5/OnePlus5:7.1.1/NMF26X/10171617:user/release-keys
5430 E AndroidRuntime:
5430 E AndroidRuntime: Caused by: java.lang.RuntimeException: Unable to instantiate service com.flurry.android.marketing.messaging.FCM.FlurryMessageListenerService: java.lang.ClassNotFoundException: Didn't find class "com.flurry.android.marketing.messaging.FCM.FlurryMessageListenerService" on path: DexPathList[[zip file "/data/app/myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/myapp-1/lib/arm, /data/app/myapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /data/downloads, /data/priv-downloads]]
5430 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:3177)
5430 E AndroidRuntime: at android.app.ActivityThread.-wrap5(ActivityThread.java)
5430 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1568)
5430 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
5430 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
5430 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6125)
5430 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
5430 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
5430 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)
5430 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.flurry.android.marketing.messaging.FCM.FlurryMessageListenerService" on path: DexPathList[[zip file "/data/app/myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/myapp-1/lib/arm, /data/app/myapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /data/downloads, /data/priv-downloads]]
5430 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
5430 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
5430 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
5430 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:3174)
5430 E AndroidRuntime: ... 8 more
5430 E AndroidRuntime: Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/FirebaseMessagingService;
5430 E AndroidRuntime: at java.lang.VMClassLoader.findLoadedClass(Native Method)
5430 E AndroidRuntime: at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
5430 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:362)
5430 E AndroidRuntime: ... 10 more
5430 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.messaging.FirebaseMessagingService" on path: DexPathList[[zip file "/data/app/myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/myapp-1/lib/arm, /data/app/myapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /data/downloads, /data/priv-downloads]]
5430 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
5430 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
5430 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
5430 E AndroidRuntime: ... 13 more
Note: It seems that I should integrate Firebase Messaging to resolve its dependencies? But I really dont want to as I'm not using Firebase Messaging and Flurry Messaging in my app.
Thank you!
@ishnu47 @wangjinzhong
Probably Firebase Push and Flurry Push have some conflict here. If you do not use Flurry Push in your app, please remove the following files (Flurry Push library) from your project to see whether the problem will be resolved or not.
$PROJ_ROOT/Assets/Plugins/Android/flurry-marketing.aar $PROJ_ROOT/Assets/Plugins/Android/flurry-unity.aar
Have you try to remove these 2 aar files? And make sure your project build is not cached.
Hello, I got this error when delete those files.
01-22 15:44:42.053 9921 9976 E Unity : AndroidJavaException: java.lang.ClassNotFoundException: com.flurry.android.FlurryUnityApplication
01-22 15:44:42.053 9921 9976 E Unity : java.lang.ClassNotFoundException: com.flurry.android.FlurryUnityApplication
01-22 15:44:42.053 9921 9976 E Unity : at java.lang.Class.classForName(Native Method)
01-22 15:44:42.053 9921 9976 E Unity : at java.lang.Class.forName(Class.java:400)
01-22 15:44:42.053 9921 9976 E Unity : at java.lang.Class.forName(Class.java:326)
01-22 15:44:42.053 9921 9976 E Unity : at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
01-22 15:44:42.053 9921 9976 E Unity : at com.unity3d.player.UnityPlayer.c(Unknown Source)
01-22 15:44:42.053 9921 9976 E Unity : at com.unity3d.player.UnityPlayer$e$2.queueIdle(Unknown Source)
01-22 15:44:42.053 9921 9976 E Unity : at android.os.MessageQueue.next(MessageQueue.java:392)
01-22 15:44:42.053 9921 9976 E Unity : at android.os.Looper.loop(Looper.java:136)
01-22 15:44:42.053 9921 9976 E Unity : at com.unity3d.player.UnityPlayer$e.run(Unknown Source)
01-22 15:44:42.053 9921 9976 E Unity : Caused by: java.lang.ClassNotFoundException: Didn't find class "com.flurry.android.FlurryUnityApplication" on path: DexPathList[[zip file "/data/app/myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/myapp-1/lib/a
Thank you.
@ishnu47 Yes, the wrapper C# also needs to remove the usage of FlurryUnityApplication
. We will release a new build as soon as possible to fix this.
Before then, please comment out all usage of FlurryUnityApplication
in $PROJ_ROOT/Assets/Plugins/FlurrySDK/FlurryAgentAndroid.cs
.
I.e.,
// AndroidJavaClass cls_FlurryApplication = new AndroidJavaClass("com.flurry.android.FlurryUnityApplication");
&
// cls_FlurryApplication.CallStatic("withFlurryMessagingListener", new MessagingCallback(flurryMessagingListener));
.
@poting-oath Thanks for your help, I tried and it works, no crash! Hope we get a new build to fix this issue completely soon. Thank you!
@ishnu47 We just released a new 2.4.0 Flurry Unity plugins, one for Analytics only, the other for With-Push. In your case, please use the Analytics only package flurry-sdk-2.4.0.unitypackage
. Thanks for your feedback and support!
We just released a new 2.4.0 Flurry Unity plugins, one for Analytics only, the other for With-Push. In your case, please use the Analytics only package flurry-sdk-2.4.0.unitypackage. Thanks for your feedback and support!
Closed
After I integrate the Firebase SDK, the follow issue occurs, it crashes on about 75% of my user's devices, but I can not repro it. Caused by java.lang.RuntimeException: Unable to instantiate service com.flurry.android.marketing.messaging.FCM.FlurryMessageListenerService: java.lang.ClassNotFoundException: Didn't find class "com.flurry.android.marketing.messaging.FCM.FlurryMessageListenerService" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.kiwifun.game.cross.collect.line.words-3UlbAfstJCj2XnaLnuex8w==/base.apk"],nativeLibraryDirectories=[/data/app/com.kiwifun.game.cross.collect.line.words-3UlbAfstJCj2XnaLnuex8w==/lib/arm64, /data/app/com.kiwifun.game.cross.collect.line.words-3UlbAfstJCj2XnaLnuex8w==/base.apk!/lib/arm64-v8a, /system/lib64]] at android.app.ActivityThread.handleCreateService(ActivityThread.java:3736) at android.app.ActivityThread.access$1400(ActivityThread.java:213) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1826) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6936) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)