Ich habe ein Problem beim Kompilieren meines JavaFX-Projekts für Android. Das Projekt enthält eine Reihe von Bibliotheken, darunter Undertow Websockets. Ich habe alle benötigten JARs in mein lib-Verzeichnis heruntergeladen und sie in den Block dependencies/compile files der Datei build.gradle aufgenommen.Stark abgeschnitten Attribut während des Kompilierens von JavaFX Undertow Websets-Projekt für Android mit Jfxmobile-Plugin
konnte ich andere Probleme mit jar-Dateien Abhängigkeiten lösen (meist DuplicateFileException), aber eine Undertow Bibliothek - undertow-Core-1.3.14.Final.jar gibt mir ein wenig Kopfschmerzen.
Als ich hinzufügen, es zu Kompilierung Datei Block gradle.build Datei ‚gradlew android‘ gibt mir eine Fehlermeldung:
Was schief gelaufen ist: Die Ausführung für Aufgabe gescheitert ‚: createMainDexList‘.
Exception in thread „main“ com.android.dx.cf.iface.ParseException: stark abgestumpfte Attribut bei com.android.dx.cf.direct.StdAttributeFactory.throwSeverelyTruncated (StdAttributeFactory.java:736) bei com.android.dx.cf.direct.StdAttributeFactory.runtimeVisibleParameterAnnotations (StdAttributeFactory.java:661) bei com.android.dx.cf.direct.StdAttributeFactory.parse0 (StdAttributeFactory.java:162) bei com.android .dx.cf.direct.AttributeFactory.parse (AttributeFactory.java:96) um com.android.dx.cf.direct.AttributeListParser.parse (AttributeListParser.java:141) bei com.android.dx.cf.direct.AttributeListParser.parseIfNecessary (AttributeListParser.java:115) bei com.android.dx.cf.direct.AttributeListParser.getEndOffset (AttributeListParser.java:96) bei com.android.dx.cf.direct.MemberListParser.parse (MemberListParser.java:213) bei com.android.dx.cf.direct.MemberListParser.parseIfNecessary (MemberListParser.java:108) bei com.android. dx.cf.direct.MethodListParser.getList (MethodListParser.java:54) bei com.android.dx.cf.direct.DirectClassFile.parse0 (DirectClassFile.java:542) bei com.android.dx.cf. direct.DirectClassFil e.parse (DirectClassFile.java:406) bei com.android.dx.cf.direct.DirectClassFile.parseToEndIfNecessary (DirectClassFile.java:397) bei com.android.dx.cf.direct.DirectClassFile.getAttributes (DirectClassFile.java:311) bei com.android.multidex.MainDexListBuilder.hasRuntimeVisibleAnnotation (MainDexListBuilder.java:191) bei com.android.multidex.MainDexListBuilder.keepAnnotated (MainDexListBuilder.java:167) bei com.android .multidex.MainDexListBuilder. (MainDexListBuilder.java:121) um com.android.multidex.MainDexListBuilder.main (MainDexListBuilder.java:91) um com. android.multidex.ClassReferenceListBuilder.main (ClassReferenceListBuilder.java:58) ... beim Analysieren des Attributs RuntimeVisibleParameterAnnotations bei Offset 0009c07> ... beim Analysieren von Attributen [3] ... beim Parsen von Methoden [1] ... beim Parsen von io/undertow/client/http /HttpResponseParser$$generated.class
Unten ist mein Build.gradle Dateiinhalt:
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
)
}
Hat jemand verwalten apk mit Undertow Websockets zu erzeugen, oder ähnliche Probleme auftreten mit 3-rd Party-Bibliotheken?
Jede Hilfe würde sehr geschätzt werden. Vielen Dank!
Vielen Dank José! Das war genau das, was ich brauchte. Ich folgte deinen Schritten und war in der Lage, die apk zu generieren. Hurra! Ich hatte noch keine Gelegenheit, es zu implementieren und auszuführen, aber zumindest funktioniert die Kompilation jetzt. Vielen Dank für Ihren Rat, Alternativen für Websockets in Betracht zu ziehen. Ich werde es mir auf jeden Fall ansehen. – velena