2016-01-04 37 views
0

我試圖在我的android項目中包含rethinkdb java客戶端驅動程序,並試圖構建項目,但失敗。我正在使用Android Studio。無法與rethinkdb java驅動程序構建android項目

這是的build.gradle行:

compile (group: 'com.rethinkdb', name: 'rethinkdb-driver', version: '2.2-beta-1') 

我得到的是這樣的例外:

:app:transformClassesWithDexForDebug 
UNEXPECTED TOP-LEVEL EXCEPTION: 
java.lang.RuntimeException: Exception parsing classes 
    at com.android.dx.command.dexer.Main.processClass(Main.java:752) 
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:718) 
    at com.android.dx.command.dexer.Main.access$1200(Main.java:85) 
    at com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1645) 
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 
    at com.android.dx.command.dexer.Main.processOne(Main.java:672) 
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:574) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311) 
    at com.android.dx.command.dexer.Main.run(Main.java:277) 
    at com.android.dx.command.dexer.Main.main(Main.java:245) 
    at com.android.dx.command.Main.main(Main.java:106) 
Caused by: com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) 
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) 
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) 
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) 
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) 
    at com.android.dx.command.dexer.Main.parseClass(Main.java:764) 
    at com.android.dx.command.dexer.Main.access$1500(Main.java:85) 
    at com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1684) 
    at com.android.dx.command.dexer.Main.processClass(Main.java:749) 
    ... 12 more 
1 error; aborting 

我試圖用Java 1.6的,1.7編譯但問題依然如故。 Gradle插件版本:1.5.0

我跟着其他SOF的答案,但問題仍然存在。

+0

你嘗試使用Java 1.8?這是rethinkdb驅動程序的最低JVM版本。 – janih

+1

Android不支持Java 1.8。所以我們可以推測Java驅動程序不能在Android上使用。 (這是不是一個好主意,因爲你必須公開你的數據庫) – dwursteisen

+0

@dwursteisen你是正確的,在Android Studio中不支持Java 8 :( –

回答

1

目前,Java驅動程序只與Java兼容8.看到這個博客帖子:

https://www.rethinkdb.com/blog/official-java-driver/

此外,關於這一主題的GitHub的問題:

https://github.com/rethinkdb/rethinkdb/issues/3930#issuecomment-94911187

主要原因是官方的Java 8要求是lambda支持。您可能需要通過打開GitHub issue來詢問RethinkDB團隊對Java 7(或更低版本)的額外支持。

然而,丹尼爾建議,你可以試試這個Java(非官方)驅動程序:

https://github.com/dropbox/rethink-java-driver

+0

指定的非官方java驅動程序沒有更改提要功能,這不會佔用rethinkdb,我會和其他nosql數據庫一起使用。 –