0

Android 用の JavaFX プロジェクトのコンパイル中に問題が発生しました。このプロジェクトには多数のライブラリが含まれており、Undertow Websockets はその中に含まれています。必要なすべての jar を lib ディレクトリにダウンロードし、build.gradle ファイルの依存関係 / コンパイル ファイル ブロックに含めました。

jar ファイルの依存関係 (主に DuplicateFileException) に関するその他の問題は解決できましたが、Undertow ライブラリの 1 つ ( undertow-core-1.3.14.Final.jar )が少し頭を悩ませています。

gradle.build ファイル 'gradlew android' のコンパイル ファイルブロックに追加すると、エラー メッセージが表示されます。

問題: タスク ':createMainDexList' の実行に失敗しました。

スレッド「メイン」での例外.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) 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.DirectClassFile.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) at com.android.multidex.ClassReferenceListBuilder.main(ClassReferenceListBuilder.java:58) …オフセット 0009c07 で RuntimeVisibleParameterAnnotations 属性を解析中 > …属性の解析中 [3] …メソッドの解析中 [1] …ながらio/undertow/client/http/HttpResponseParser$$ generated.class の解析

以下は私のbuild.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
    )    


}

Undertow Websockets で apk の生成を管理したり、サードパーティのライブラリで同様の問題に遭遇したりした人はいますか?

どんな助けでも大歓迎です。ありがとうございました!

4

1 に答える 1