Brew the Mash

クラフトビール好きなITエンジニア@mashmorgan_jpの開発メモなど

【Android】RealmをバージョンアップしようとしたらJava8のエラー

Realmを最新(この時点では5.1.0)にあげようとしたところ、以下のようなエラーが。

Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add 
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.

いろいろググってみたところ、RealmがJava8依存のコンパイルに変えた事が原因みたい。 Android Studioを3.x にすればこの問題は解決するとのこと。

しかし、自分の開発環境は訳あってAndroid Studio 2.3.3なのだ。。。 そこで最新は諦めてJava8依存前のバージョンまであげることにしました。

(もちろん?)公式サイトには情報がないので、こちらに記載してある内容を参考にしました。

forum.realm.io

結論:Android Studio2.3.xを使ってる人は、Realm 4.2.0までにしといたほうがいいかも

もちろんRetrolambda等で無理やり最新にする方法はあるようですが、やってみたけど上手くいかず、あとbuild.gradleが汚れまくるので止めときました。特別な事情がない限りは、素直にAndroid Studio3.x を使ったほうが良さそうですね。