私は、neo4j埋め込みグラフデータベースのAPIを使用するAndroidアプリケーションを作成しようとしています。このアプリを開発するには、Java 8をサポートするAndroidスタジオpreview versionを使用しています。建物は適切に処理されています。しかし、私は、ターゲット上でアプリケーションを実行しようとしていたとき、私はGradleのコンソールで次のエラーを取得しています:Androidでライブラリとしてneo4jをビルドするアプリケーション
Error:Error converting bytecode to dex:
Cause: InvokeDynamic not supported
Error:java.lang.RuntimeException: com.android.dx.cf.iface.ParseException: InvokeDynamic not supported
Error: at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:183)
Error: at com.android.builder.dexing.DexArchiveBuilder.processOutputs(DexArchiveBuilder.java:95)
Error: at com.android.builder.dexing.DexArchiveBuilder.convert(DexArchiveBuilder.java:78)
Error: at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.lambda$cacheMissAction$0(DexArchiveBuilderTransformCallable.java:240)
Error: at com.android.builder.utils.FileCache.lambda$createFile$1(FileCache.java:260)
Error: at com.android.builder.utils.FileCache.lambda$null$5(FileCache.java:443)
Error: at com.android.builder.utils.SynchronizedFile.doActionWithMultiProcessLocking(SynchronizedFile.java:265)
Error: at com.android.builder.utils.SynchronizedFile.write(SynchronizedFile.java:232)
Error: at com.android.builder.utils.FileCache.lambda$queryCacheEntry$6(FileCache.java:415)
Error: at com.android.builder.utils.SynchronizedFile.doActionWithMultiProcessLocking(SynchronizedFile.java:265)
Error: at com.android.builder.utils.SynchronizedFile.read(SynchronizedFile.java:215)
Error: at com.android.builder.utils.FileCache.queryCacheEntry(FileCache.java:391)
Error: at com.android.builder.utils.FileCache.createFile(FileCache.java:273)
Error: at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.getFromCacheAndCreateIfMissing(DexArchiveBuilderTransformCallable.java:187)
Error: at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.call(DexArchiveBuilderTransformCallable.java:149)
Error: at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.call(DexArchiveBuilderTransformCallable.java:53)
Error: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
Error: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
Error: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
Error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
Error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Error: at java.lang.Thread.run(Thread.java:745)
Error:Caused by: com.android.dx.cf.iface.ParseException: InvokeDynamic not supported
Error: at com.android.dx.cf.cst.ConstantPoolParser.determineOffsets(ConstantPoolParser.java:226)
Error: at com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:132)
Error: at com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)
Error: at com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115)
Error: at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:491)
Error: at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
Error: at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
Error: at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
Error: at com.android.builder.dexing.DexArchiveBuilderCallable.parseClass(DexArchiveBuilderCallable.java:80)
Error: at com.android.builder.dexing.DexArchiveBuilderCallable.call(DexArchiveBuilderCallable.java:66)
Error: at com.android.builder.dexing.DexArchiveBuilderCallable.call(DexArchiveBuilderCallable.java:40)
Error: ... 6 more
Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.utils.FileCache$FileCreatorException: com.android.builder.dexing.DexArchiveBuilder$DexBuilderException: Unable to convert input to dex archive.
私はインターネットで検索し、自分のアプリケーションをしようとしたときInvokeDynamic not supported
エラーが主に発生したことを知っているようになりましたラムダに依存する第三者のライブラリを使用する。しかし、私はAndroidスタジオのプレビュー版を使用しているので、Java 8をサポートしています、ラムダは働いていないはずですか?
Neo4jでこの問題に直面した人はいますか?どのように問題に対処するための任意のアイデア?
あなたはジャックのツールチェーンでビルドを試しましたか? – SDG99
JackはJava 8ライブラリをサポートしていません(また、Java 8ライブラリをサポートすることもありません)。https://issuetracker.google.com/issues/37101513 – zakgof
を参照してください。私はJackを使ってAPKを生成することができましたが、neo4jはJavaライブラリに依存していました。 MangementFactoryは、JVM上でのみ実行されます。 – SDG99