Je rencontre un problème lors de la compilation de mon projet JavaFX pour Android. Le projet comprend un tas de bibliothèques, Undertow Websockets est parmi eux. J'ai téléchargé tous les jars requis dans mon répertoire lib et les ai inclus dans le bloc dépendances/compilation du fichier build.gradle.Attribut gravement tronqué lors de la compilation du projet JavaFX Undertow Websockets pour Android avec jfxmobile-plugin
j'ai pu résoudre d'autres problèmes avec dépendances jar-fichiers (la plupart du temps DuplicateFileException), mais une bibliothèque Undertow - undertow-core-1.3.14.Final.jar me donne un peu d'un mal de tête.
Quand j'ajouter à fichier de compilation bloc de fichier gradle.build « gradlew android » me donne un message d'erreur:
Qu'est-ce qui a mal tourné: Échec de l'exécution de la tâche « : createMainDexList ».
Exception in thread « main » com.android.dx.cf.iface.ParseException: attribut sévèrement tronqué à com.android.dx.cf.direct.StdAttributeFactory.throwSeverelyTruncated (StdAttributeFactory.java:736) à com.android.dx.cf.direct.StdAttributeFactory.runtimeVisibleParameterAnnotations (StdAttributeFactory.java:661) à com.android.dx.cf.direct.StdAttributeFactory.parse0 (StdAttributeFactory.java:162) à com.android .dx.cf.direct.AttributeFactory.parse (AttributeFactory.java:96) at com.android.dx.cf.direct.AttributeListParser.parse (AttributeListParser.java:141) à com.android.dx.cf.direct.AttributeListParser.parseIfNecessary (AttributeListParser.java:115) à com.android.dx.cf.direct.AttributeListParser.getEndOffset (AttributeListParser.java:96) à com.android.dx.cf.direct.MemberListParser.parse (MemberListParser.java:213) à com.android.dx.cf.direct.MemberListParser.parseIfNecessary (MemberListParser.java:108) à com.android. dx.cf.direct.MethodListParser.getList (MethodListParser.java:54) à com.android.dx.cf.direct.DirectClassFile.parse0 (DirectClassFile.java:542) à com.android.dx.cf. direct.DirectClassFil e.parse (DirectClassFile.java:406) à com.android.dx.cf.direct.DirectClassFile.parseToEndIfNecessary (DirectClassFile.java:397) à com.android.dx.cf.direct.DirectClassFile.getAttributes (DirectClassFile.java:311) à com.android.multidex.MainDexListBuilder.hasRuntimeVisibleAnnotation (MainDexListBuilder.java:191) à com.android.multidex.MainDexListBuilder.keepAnnotated (MainDexListBuilder.java:167) à com.android .multidex.MainDexListBuilder. (MainDexListBuilder.java:121) à com.android.multidex.MainDexListBuilder.main (MainDexListBuilder.java:91) à com. android.multidex.ClassReferenceListBuilder.main (ClassReferenceListBuilder.java:58) ... lors de l'analyse de l'attribut RuntimeVisibleParameterAnnotations au décalage 0009c07> ... lors de l'analyse des attributs [3] ... lors de l'analyse des méthodes [1] ... lors de l'analyse de io/undertow/client/http /HttpResponseParser$$generated.class
Ci-dessous est ma construction.le contenu du fichier Gradle:
task wrapper(type: Wrapper) {
gradleVersion = '2.10'
}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.7'
}
}
apply plugin: 'org.javafxports.jfxmobile'
apply plugin: 'java'
apply plugin: 'application'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
jcenter()
}
mainClassName = 'com.simlayserstudio.SimlayserStudio'
jfxmobile {
android {
manifest = 'src/android/AndroidManifest.xml'
// compileSdkVersion = 16 // version 4.2.1
compileSdkVersion = 23 // version 6
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/services/io.undertow.attribute.ExchangeAttributeBuilder'
exclude 'META-INF/services/io.undertow.predicate.PredicateBuilder'
exclude 'META-INF/services/io.undertow.server.handlers.builder.HandlerBuilder'
//exclude 'META-INF/services/javax.annotation.processing.Processor'
}
}
ios {
infoPList = file('src/ios/Default-Info.plist')
}
}
dependencies {
compile ('commons-codec:commons-codec:1.10',
'commons-io:commons-io:2.4',
'commons-lang:commons-lang:2.6',
// 'io.undertow:undertow-servlet:1.3.14.Final' // Duplicate zip entry [allclasses.jar:javax/annotation/Generated.class
)
compile files(
'/lib/jboss-logging-3.2.1.Final.jar', //ok wtih exclude 'META-INF/INDEX.LIST'
// '/lib/undertow-core-1.3.14.Final.jar', // ERROR com.android.dx.cf.iface.ParseException: severely truncated attribute
'/lib/undertow-servlet-1.3.14.Final.jar', // ok wtih exclude ExchangeAttributeBuilder, PredicateBuilder, HandlerBuilder
'/lib/undertow-websockets-jsr-1.3.14.Final.jar', //ok with exclude 'META-INF/INDEX.LIST'
'/lib/xnio-api-3.3.4.Final.jar', //ok with exclude 'META-INF/INDEX.LIST'
'/lib/xnio-nio-3.3.4.Final.jar', //ok with exclude 'META-INF/INDEX.LIST'
'/lib/apache-commons.jar', //ok
'/lib/com.thoughtworks.xstream.jar', //ok
'/lib/javax.websocket-api-1.0.jar', //ok
'/lib/log4j-1.2.17.jar', //ok
'/lib/xmlpull-xpp3-1.1.4c.jar', //ok
)
}
Quelqu'un at-il apk avec la génération gèrent Undertow Websockets, ou rencontrer des problèmes similaires avec 3 rd bibliothèques du parti?
Toute aide serait grandement appréciée. Merci!
Merci beaucoup José! C'était exactement ce dont j'avais besoin. J'ai suivi vos pas et j'ai pu générer l'apk. Hourra! Je n'ai pas encore eu l'occasion de le déployer et de l'exécuter, mais au moins la compilation fonctionne maintenant. Merci de votre conseil pour envisager des alternatives pour les websockets. Je vais certainement jeter un coup d'oeil. – velena