universal-tools / UTNotificationsFeedback

7 stars 0 forks source link

java.lang.NoClassDefFound - fatal exception #34

Closed Acimaz closed 7 years ago

Acimaz commented 7 years ago

Hey there,

im currently trying to implement your plugin for our company. But i couldnt test it on my phone yet because of this error which causes the app to close when i try to schedule a notification: `11-07 16:51:11.769 22508-22508/com.kaasahealth.videointro E/AndroidRuntime: FATAL EXCEPTION: main Process: com.kaasahealth.videointro, PID: 22508 java.lang.Error: FATAL EXCEPTION [main] Unity version : 5.4.1p4 Device model : OnePlus ONEPLUS A3003 Device fingerprint: OnePlus/OnePlus3/OnePlus3:6.0.1/MMB29M/386960:user/release-keys

                                                                        Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/NotificationCompat$Builder;
                                                                            at universal.tools.notifications.Manager.prepareNotification(Manager.java:493)
                                                                            at universal.tools.notifications.Manager.postNotification(Manager.java:253)
                                                                            at universal.tools.notifications.AlarmBroadcastReceiver.onReceive(AlarmBroadcastReceiver.java:14)
                                                                            at android.app.ActivityThread.handleReceiver(ActivityThread.java:2789)
                                                                            at android.app.ActivityThread.access$1800(ActivityThread.java:159)
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:152)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5507)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                         Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.app.NotificationCompat$Builder" on path: DexPathList[[zip file "/data/app/com.kaasahealth.videointro-1/base.apk"],nativeLibraryDirectories=[/data/app/com.kaasahealth.videointro-1/lib/arm, /data/app/com.kaasahealth.videointro-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
                                                                            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                            at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                            at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                            at universal.tools.notifications.Manager.prepareNotification(Manager.java:493) 
                                                                            at universal.tools.notifications.Manager.postNotification(Manager.java:253) 
                                                                            at universal.tools.notifications.AlarmBroadcastReceiver.onReceive(AlarmBroadcastReceiver.java:14) 
                                                                            at android.app.ActivityThread.handleReceiver(ActivityThread.java:2789) 
                                                                            at android.app.ActivityThread.access$1800(ActivityThread.java:159) 
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461) 
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                            at android.os.Looper.loop(Looper.java:152) 
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5507) 
                                                                            at java.lang.reflect.Method.invoke(Native Method) 
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                            Suppressed: java.lang.ClassNotFoundException: android.support.v4.app.NotificationCompat$Builder
                                                                            at java.lang.Class.classForName(Native Method)
                                                                            at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                            at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                            at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                                    ... 13 more
                                                                         Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

11-07 16:51:11.791 2876-2998/? W/ActivityManager: Force finishing activity com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity 11-07 16:51:11.889 2876-4260/? I/WindowState: WIN DEATH: Window{2738245 u0 com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity} 11-07 16:51:11.890 2876-4260/? W/WindowManager: Force-removing child win Window{beac920 u0 SurfaceView} from container Window{2738245 u0 com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity} `

Acimaz commented 7 years ago

We are using Unity 5.4.1p4

Acimaz commented 7 years ago

When i use the normal PostLocalNotification() method i receive this one:

11-07 17:05:11.704 25620-25636/com.kaasahealth.videointro I/Unity: AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/NotificationCompat$Builder; java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/NotificationCompat$Builder; at universal.tools.notifications.Manager.prepareNotification(Manager.java:493) at universal.tools.notifications.Manager.postNotification(Manager.java:253) at universal.tools.notifications.Manager.postNotification(Manager.java:93) at com.unity3d.player.UnityPlayer.nativeRender(Native Method) at com.unity3d.player.UnityPlayer.a(Unknown Source) at com.unity3d.player.UnityPlayer$b$1.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:152) at com.unity3d.player.UnityPlayer$b.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.app.NotificationCompat$Builder" on path: DexPathList[[zip file "/data/app/com.kaasahealth.videointro-1/base.apk"],nativeLibraryDire 11-07 17:05:25.842 25620-25620/com.kaasahealth.videointro I/Unity: onPause 11-07 17:05:25.908 25620-25636/com.kaasahealth.videointro D/Unity: Sensor : Accelerometer ( 1) ; 0.002396 / 0.00s ; LSM6DS3 Accelerometer / STMicroelectronics 11-07 17:05:25.918 25620-25620/com.kaasahealth.videointro I/Unity: windowFocusChanged: false 11-07 17:05:25.926 25620-25620/com.kaasahealth.videointro D/Unity: [EGL] Attaching window :0x0 11-07 17:05:28.205 2876-3436/? W/InputDispatcher: channel '8265f0f com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 11-07 17:05:28.205 2876-3436/? E/InputDispatcher: channel '8265f0f com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 11-07 17:05:28.209 2876-2999/? I/WindowState: WIN DEATH: Window{8265f0f u0 com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity} 11-07 17:05:28.209 2876-2999/? W/InputDispatcher: Attempted to unregister already unregistered input channel '8265f0f com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity (server)' 11-07 17:05:28.209 2876-2999/? W/WindowManager: Force-removing child win Window{31ce273 u0 SurfaceView} from container Window{8265f0f u0 com.kaasahealth.videointro/com.unity3d.player.UnityPlayerActivity}

But this time the app doesnt crash.

yuriy-universal-ivanov commented 7 years ago

Hi @Acimaz,

First of all, thank you for using UTNotifications! Your issue is caused by an absence of android support library in your project. To resolve it, please open your Android SDK, and make sure that

  1. Android SDK path in Unity settings is set to a correct version of Android SDK.
  2. Packages: Extra/Android Support Repository, Extra/Google Play Services and Extra/Google Repository are installed and up to date.
  3. Android SDK itself is up to date.

After updating and installing all the libraries, just to make sure there is everything in place, do Unity Menu -> Assets -> Play Services Resolver -> Android Resolver -> Resolve Client Jars. Please also check your Unity Console output - in case of errors like missing Android libraries in your case, it should contain all the required details about the issue so you know what's wrong and how to fix it.

Acimaz commented 7 years ago

Hey @yuriy-universal-ivanov ,

thank you for the fast answer! I indeed did update all packages yesterday, but i didnt know that there is a Android Resolver. Now it works like a charm :) Thank you and keep up the good work!