2016-10-31 2 views
-1

Cette erreur est de logcat quand je me sers JFoenix avec JavaFXPorts:java.lang.IncompatibleClassChangeError lors de l'utilisation JFoenix avec javafxports 8.60.8 - Comment utiliser JFoenix avec JavaFXPorts?

10-31 11:01:10.601: E/AndroidRuntime(5873): java.lang.IncompatibleClassChangeError: The method 'javafx.scene.layout.Background com.jfoenix.skins.JFXButtonSkin.lambda$new$251(com.jfoenix.controls.JFXButton)' was expected to be of type direct but instead was found to be of type virtual (declaration of 'com.jfoenix.skins.JFXButtonSkin' appears in /data/app/sk.jfoenixtestapplication-1/base.apk) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.jfoenix.skins.JFXButtonSkin.access$lambda$3(JFXButtonSkin.java) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.jfoenix.skins.JFXButtonSkin$$Lambda$4.call(Unknown Source) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.beans.binding.Bindings$6.computeValue(Bindings.java:338) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.beans.binding.ObjectBinding.get(ObjectBinding.java:153) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.beans.binding.ObjectExpression.getValue(ObjectExpression.java:50) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.binding.ExpressionHelper.addListener(ExpressionHelper.java:53) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.beans.binding.ObjectBinding.addListener(ObjectBinding.java:72) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.beans.property.ObjectPropertyBase.bind(ObjectPropertyBase.java:173) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.css.StyleableObjectProperty.bind(StyleableObjectProperty.java:75) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.jfoenix.skins.JFXButtonSkin.<init>(JFXButtonSkin.java:108) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.jfoenix.controls.JFXButton.createDefaultSkin(JFXButton.java:91) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.scene.control.Control.impl_processCSS(Control.java:858) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.scene.Node.processCSS(Node.java:9056) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.scene.Node.processCSS(Node.java:9049) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.scene.Scene.doCSSPass(Scene.java:545) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.scene.Scene.access$3600(Scene.java:159) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2396) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:348) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.Toolkit.access$lambda$3(Toolkit.java) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.Toolkit$$Lambda$4.run(Unknown Source) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at java.security.AccessController.doPrivileged(AccessController.java:52) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:347) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:374) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:503) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$387(QuantumToolkit.java:321) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.quantum.QuantumToolkit.access$lambda$2(QuantumToolkit.java) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$3.run(Unknown Source) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51) 
10-31 11:01:10.601: E/AndroidRuntime(5873):  at java.lang.Thread.run(Thread.java:818) 

J'utilise JavaFXPorts 8.60.8 et gluons plug-in NetBeans mobile.

+0

Et la question est? – Bas

+0

Affichez votre build.gradle en premier lieu. Comme une chance, utilisez-vous la dépendance JFoenix qui inclut retrolambda? La nouvelle version du plugin va essayer de l'appliquer à nouveau et cela échouera. Utilisez 'compileNoRetrolambda' si c'est le cas. –

+0

Nous vous remercions de votre aide. –

Répondre

0

Le nouveau plugin jfxmobile 1.1.0+ inclut quelques changes liés à la façon dont Retrolambda est appliqué au projet et aux dépendances. Avant la 1.1.0, chaque dépendance devrait être exempte d'expressions lambda, car le plugin retrolambda n'était pas capable d'agir sur elles.

Depuis la version 1.1.0+, le plugin applique également retrolambda à des dépendances tierces.

Dans le cas où ces dépendances utilisaient le plugin retrolambda, nous ne pouvons pas l'appliquer deux fois, cela échouera avec l'exception affichée par l'OP.

Pour éviter ce problème, nous pouvons utiliser compileNoRetrolambda ou runtimeNoRetrolambda, au lieu du compile ou runtime d'habitude, que nous allons utiliser uniquement sur les dépendances sans retrolambda:

dependencies { 
    compile 'com.gluonhq:charm:4.0.0' 
    compileNoRetrolambda 'com.airhacks:afterburner.mfx:1.6.2' 
}