Gluon/charm バージョン 3.0.0 を実行しています。Java8 でコンパイルされたライブラリを JavaFX プロジェクト (IntelliJ プラグインを介して作成) に追加しました。iOS では動作し、期待どおりにビルドされますが、gradle タスクを実行すると、android
またはandroidInstall
このエラーが返されます。
[ant:java] Java Result: 1
:createMainDexList FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':createMainDexList'.
> Exception in thread "main" com.android.dx.cf.iface.ParseException: InvokeDynamic not supported
at com.android.dx.cf.cst.ConstantPoolParser.determineOffsets(ConstantPoolParser.java:226)
at com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:132)
at com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)
at com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:491)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToEndIfNecessary(DirectClassFile.java:397)
at com.android.dx.cf.direct.DirectClassFile.getAttributes(DirectClassFile.java:311)
at com.android.multidex.MainDexListBuilder.hasRuntimeVisibleAnnotation(MainDexListBuilder.java:191)
at com.android.multidex.MainDexListBuilder.keepAnnotated(MainDexListBuilder.java:167)
at com.android.multidex.MainDexListBuilder.<init>(MainDexListBuilder.java:121)
at com.android.multidex.MainDexListBuilder.main(MainDexListBuilder.java:91)
at com.android.multidex.ClassReferenceListBuilder.main(ClassReferenceListBuilder.java:58)
...while preparsing cst 0002 at offset 0000000f
...while parsing de/<removed>/traffic_light/library/Test.class
私が少し奇妙だと思うのは、ライブラリにも、traffic_light の Test クラスさえないことです。エラーを検索すると、Dynamic/Support Lambdas を呼び出すにはおそらく Java 8 が必要であることがわかりましたが、たとえば、Gluon の Presenter 自体は Lambdas を使用しています。
また、グーグルで同じ問題についてこのヒットを見つけましたが、残念ながらGluonはフォーラムを削除し、ページはどこにもキャッシュされていません.