realm-java: SLF4J and Realm 4.+ NoClassDefFoundError OutputEventListenerBackedLoggerContext
Hello,
when using the combination of
classpath “io.realm:realm-gradle-plugin:4.2.0”
and
implementation “org.slf4j:slf4j-api:1.7.25”
with a local copy (not included via a gradale dependency) of the SLF4J implementation inside my projects (https://github.com/noveogroup/android-logger)
I get the following stracktrace
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxx.app.debug, PID: 27418
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/gradle/internal/logging/slf4j/OutputEventListenerBackedLoggerContext;
at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:30)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:27)
at org.slf4j.impl.StaticLoggerBinder.getSingleton(StaticLoggerBinder.java:0)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at com.xxx.app.application.App.onCreate(App.kt:88)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5448)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.gradle.internal.logging.slf4j.OutputEventListenerBackedLoggerContext" on path: DexPathList[[zip file "/data/app/com.xxx.app.debug-1/base.apk", zip file "/data/app/com.xxx.app.debug-1/split_lib_directories_apk.apk"],nativeLibraryDirectories=[/data/app/com.xxx.app.debug-1/lib/arm, /data/app/com.xxx.app.debug-1/base.apk!/lib/armeabi-v7a, /data/app/com.xxx.app.debug-1/split_lib_directories_apk.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:30)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:27)
at org.slf4j.impl.StaticLoggerBinder.getSingleton(StaticLoggerBinder.java:0)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at com.xxx.app.application.App.onCreate(App.kt:88)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5448)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
This reminds me of this issues that popped up beginning of the year. https://github.com/realm/realm-java/issues/3568 and it happened already before. https://github.com/realm/realm-java/issues/3018
By the way this is also happening if i add a different implementation of “StaticLoggerBinder” to my project. It seems to work fine when realm is removed.
Is there an issue with the gradle realm plugin? Does nobody else use SLF4J?
Thanks in advance
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 20 (9 by maintainers)
Commits related to this issue
- Downgrade version of Javassist causing issue with classloader at runtime #5641 — committed to realm/realm-java by nhachicha 6 years ago
- downgrade javassist (#5698) * Downgrade version of Javassist causing issue with classloader at runtime #5641 — committed to realm/realm-java by nhachicha 6 years ago
hey @nhachicha this snapshot version fixes the problem