2016-05-07 23 views
10

アンドロイドスタジオを2.0から2.1にアップデートして以来、次のエラーが発生しています。Android Studio 2.1バイトコードをdexに変換中にエラーが発生しました

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.

私はbuild.gradleに次のコードを追加してみましたが、それでも問題は、私はこれに類似の質問のいくつかを見

compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 

を持続するが、質問のどちらが答えました。誰も私がこれを解決するのを助けることができますか?前もって感謝します。

+0

プロジェクトにはJava専用モジュールがありますか? –

+0

いいえ、私はそのようなモジュールを使用していません。私はSDKを古いものに置き換えることでこれを解決しました。今スタジオは正常に動作しています。 –

+0

どのSDKがこれを解決するために置き換えられましたか、あなたはそれをどのように解決したのか説明できますか? – Adi

答えて

33

は、build.gradleから依存関係を削除し、関連するコードをコメントして、コンパイルして、プロジェクトをきれいメインbuild.gradleファイル

+1

これが問題を解決しました。 – superUser

+0

私は数時間の苦痛を救った。ありがとうございました! – Adrian

+0

素晴らしい作業!ありがとう。 –

2

allprojects { 
    tasks.withType(JavaCompile) { 
     sourceCompatibility = "1.7" 
     targetCompatibility = "1.7" 
    } 
} 

を試してみてください。

クリーンに成功したら、依存関係をもう一度追加し、先に依存関係を削除した後でコメントを外します。

1

Possibile duplicate of Android: Dex cannot parse version 52 byte code。最も引用された答えが私の問題を解決しました。
JDK 1.8を使用するには、build.gradleに以下のようにcompileOptionsとjackOptionsを追加しました。

android { 
    ... 
    defaultConfig { 
     ...   
     jackOptions { 
      enabled true 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 
関連する問題