Loading class 'java.util.logging.ConsoleHandler' failed

912 views
Skip to first unread message

Hata Sashii

unread,
Oct 6, 2013, 7:07:41 AM10/6/13
to rob...@googlegroups.com
Hi,
if I start my libgdx project with iPhone Simulator out of Eclipse 4.3 I got this errors/Exception:

Loading class 'java.util.logging.ConsoleHandler' failed
java.lang.ClassNotFoundException: java.util.logging.ConsoleHandler
Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.google.inject.internal.util.$MapMaker$QueueHolder.<clinit>(MapMaker.java)
    at com.google.inject.internal.util.$MapMaker$WeakEntry.<init>(MapMaker.java)
    at com.google.inject.internal.util.$MapMaker$Strength$1.newEntry(MapMaker.java)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.newEntry(MapMaker.java)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.newEntry(MapMaker.java)
    at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java)
    at com.google.inject.internal.Annotations$AnnotationChecker.hasAnnotations(Annotations.java)
    at com.google.inject.internal.Annotations.isScopeAnnotation(Annotations.java)
    at com.google.inject.internal.ScopeBindingProcessor.visit(ScopeBindingProcessor.java)
    at com.google.inject.internal.ScopeBindingProcessor.visit(ScopeBindingProcessor.java)
    at com.google.inject.spi.ScopeBinding.acceptVisitor(ScopeBinding.java)
    at com.google.inject.internal.AbstractProcessor.process(AbstractProcessor.java)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java)
    at com.google.inject.Guice.createInjector(Guice.java)
    at com.google.inject.Guice.createInjector(Guice.java)
    at com.google.inject.Guice.createInjector(Guice.java)
    at com.netthreads.libgdx.director.AppInjector.getInjector(AppInjector.java)
    ...

Caused by: java.lang.NullPointerException
    at java.util.logging.Logger.log(Logger.java)
    at java.util.logging.Logger.log(Logger.java)
    at com.google.inject.internal.util.$FinalizableReferenceQueue$DecoupledLoader.loadFinalizer(FinalizableReferenceQueue.java)
    at com.google.inject.internal.util.$FinalizableReferenceQueue.loadFinalizer(FinalizableReferenceQueue.java)
    at com.google.inject.internal.util.$FinalizableReferenceQueue.<clinit>(FinalizableReferenceQueue.java)
    ... 25 more

I use Java 1.7.0_21 to comile, latest libgdx sources and robovm 0.0.5.
Also I'm using google guice in my project maybe this is the reason?
Any Ideas?
best

Niklas Therning

unread,
Oct 7, 2013, 2:51:38 AM10/7/13
to Hata Sashii, rob...@googlegroups.com
Hi,

RoboVM strips out unused classes in order to keep compile time and final executable size down. Unfortunately this means that classes which get loaded by using reflection (e.g. using Class.forName()) won't be linked in unless the compiler is told to do so explicitly. When you run your app from within Eclipse or from the command line using the robovm script you should see a warning when Class.forName() fails to load a class. The warning gives details on what you have to do to force the inclusion of this class.

To fix your current problem with ConsoleHandler please add

  <forceLinkClasses><pattern>java.util.logging.ConsoleHandler</pattern></forceLinkClasses>

to your robovm.xml file.


--
You received this message because you are subscribed to the Google Groups "RoboVM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robovm+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Hata Sashii

unread,
Oct 12, 2013, 10:26:22 AM10/12/13
to rob...@googlegroups.com, Hata Sashii
Thanks for the info! It works like a charm.

Stefan Hennig

unread,
Jan 4, 2014, 6:04:56 AM1/4/14
to rob...@googlegroups.com, Hata Sashii
Hi!

while trying to integrate Google Guice, I was faced with the same exception (Loading class 'java.util.logging.ConsoleHandler' failed) and fixed it by using the forceLinkClasses method. However, after I was adding all indirect required classes, I get the exception below. Did you experience similar difficulties? Which dependencies are required else?

Thanks for your reply!

Cheers,
Stefan

Exception in Application start method
Exception in thread "Thread-5" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java)
at java.lang.Thread.run(Thread.java)
Caused by: com.google.inject.internal.util.$ComputationException: java.lang.ExceptionInInitializerError
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java)
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java)
at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java)
at com.google.inject.internal.FailableCache.get(FailableCache.java)
at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java)
at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java)
at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java)
at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java)
at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java)
at com.google.inject.Guice.createInjector(Guice.java)
at com.google.inject.Guice.createInjector(Guice.java)
at com.google.inject.Guice.createInjector(Guice.java)
at application.Main.<init>(Unknown Source)
at MyMobileProjectMain.start(Unknown Source)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java)
at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java)
at java.security.AccessController.doPrivileged(AccessController.java)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java)
at org.robovm.cocoatouch.uikit.UIApplication.UIApplicationMain(Native Method)
at org.robovm.cocoatouch.uikit.UIApplication.main(UIApplication.java)
at MyMobileProject.main(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at com.google.inject.internal.cglib.core.$DuplicatesPredicate.evaluate(DuplicatesPredicate.java)
at com.google.inject.internal.cglib.core.$CollectionUtils.filter(CollectionUtils.java)
at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java)
at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java)
at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java)
at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java)
at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java)
at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java)
at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java)
at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java)
at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java)
at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java)
at com.google.inject.internal.FailableCache$1.apply(FailableCache.java)
... 25 more
Caused by: com.google.inject.internal.cglib.core.$CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java)
at com.google.inject.internal.cglib.core.$KeyFactory$Generator.create(KeyFactory.java)
at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java)
at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java)
at com.google.inject.internal.cglib.core.$KeyFactory.create(KeyFactory.java)
at com.google.inject.internal.cglib.core.$MethodWrapper.<clinit>(MethodWrapper.java)
... 40 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.internalInvoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java)
at com.google.inject.internal.cglib.core.$ReflectUtils.defineClass(ReflectUtils.java)
... 46 more
Caused by: java.lang.UnsupportedOperationException
at java.lang.VMClassLoader.defineClass(VMClassLoader.java)
at java.lang.ClassLoader.defineClass(ClassLoader.java)
... 49 more 
Reply all
Reply to author
Forward
0 new messages