У меня возникла проблема при компиляции моего проекта JavaFX для Android. Проект включает в себя кучу библиотек, среди них - Undertow Websockets. Я загрузил все необходимые банки в каталог lib и включил их в блок зависимостей/компиляции файлов файла build.gradle.Значительно усеченный атрибут при компиляции проекта JavaFX Undertow Websockets для Android с jfxmobile-plugin
я был в состоянии решить другие проблемы с JAR-файлы зависимостей (в основном DuplicateFileException), но одна Undertow библиотека - прибойный-ядро-1.3.14.Final.jar дает мне немного головной боли.
Когда я добавляю его в файл компиляции блок gradle.build файла «gradlew андроида» дает мне сообщение об ошибке:
Что пошло не так: Не удалось завершить выполнение задачи по «: createMainDexList».
Исключение в потоке «основного» com.android.dx.cf.iface.ParseException: сильно усеченного атрибута в 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) at com.android.multidex.MainDexListBuilder.main (MainDexListBuilder.java:91) at com. android.multidex.ClassReferenceListBuilder.main (ClassReferenceListBuilder.java:58) ... при разборе RuntimeVisibleParameterAnnotations атрибута со смещением 0009c07> ... при разборе атрибутов [3] ... при разборе методов [1] ... при разборе Io/прибойный/клиента/HTTP /HttpResponseParser$$generated.class
Ниже приведена моя сборка.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
)
}
ли кто-нибудь управлять генерируя APK с прибойный WebSockets, или сталкиваются с аналогичными проблемами с 3-й библиотек партии?
Любая помощь будет высоко оценена. Спасибо!
Большое спасибо Хосе! Это было именно то, что мне нужно. Я последовал за твоими шагами и смог создать apk. Ура! У меня не было возможности развернуть и запустить его, но, по крайней мере, компиляция работает сейчас. Благодарим вас за советы по рассмотрению альтернатив для websockets. Я обязательно посмотрю. – velena