Android Studio で "Immutable JarInput{name=~~, file=~~}"で怒られた話

スポンサーリンク

経緯

それは、Android開発でgsonライブラリを使おうとしていたときのこと。  

Androidアプリを作っているなかで、ふとgsonライブラリを使いたいときがありました。

ググってみたところ、gsonライブラリを使うにはまずbuild.gradleに'com.google.code.gson:gson:2.8.5'追記しないといけないよーとのことだったので、以下のように追記しました。  

dependencies {
    implementation 'com.google.code.gson:gson:2.7'
}

これで問題なくgsonは使えます。      

しかし、Githubのgsonライブラリのサンプル(https://github.com/google/gson)を見てみると最新バージョンは2.8.5だったので、以下のように変更しました。

dependencies {
    implementation 'com.google.code.gson:gson:2.8.5'
}

Gradleファイルを同期しコンパイルすると、エラーが出た。  

Unexpected inputs: ImmutableJarInput{name=com.google.code.gson:gson:2.7, file=[Androidプロジェクトのパス]/app/build/intermediates/transforms/desugar/debug/17.jar, contentTypes=CLASSES, scopes=EXTERNAL_LIBRARIES, status=REMOVED}

「エラー文なっが!なにこれ?gson2.8.5って書いたのになんで2.7?イミワカンネ」  

解決策

"Immutable JarInput" とあるので、jarファイルが何か悪さをしていると推測。  

エラーメッセージを全文まるごとGoogleの検索窓に突っ込んでみると、同じような症状がStackOverFlowにあった。  

どうやらAndroidStudioでプロジェクトのクリーンを行えばよいとのことだったので、実行してみる。
f:id:tkhstol-929:20180730221343p:plain

すると見事エラーが解消されました。  

雑感

最初に入れた2.7のほうのgsonが、あとから入れた2.8.5のほうのgsonが入ってくるのを邪魔してた的な話だと思います。  

最初にググって出てきた数年前の記事をコピペしたのが原因でした。  

しっかり現行バージョンを確かめてから使えよって話でした。


Qiitaにも書きました

qiita.com

にほんブログ村 IT技術ブログへ
にほんブログ村