2

一日中私は新しいプロジェクトのいくつかの依存関係を解決するための挑戦をしています。Gradle Failed:transformClassesWithDexForDebug with jdk 1.8

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.3" 

    defaultConfig { 
     applicationId "com...." 
     minSdkVersion 19 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.google.firebase:firebase-database:9.6.1' 
    compile 'com.google.firebase:firebase-storage:9.6.1' 
    compile 'com.firebaseui:firebase-ui:0.4.3' 
    compile 'com.firebase:firebase-client-android:2.3.1' 
    compile 'com.google.android.gms:play-services:9.6.1' 
} 
apply plugin: 'com.google.gms.google-services' 

エラーされています:

これは私のbuild.gradleある

enter image description here

エラー:

"Execution failed for task: ':app:transformClassesWithDexForDebug' 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/home/bin/java" finished with non zero-exit value 2 

Firebaseストレージに画像をアップロードしようとしたときに問題が表示されていました。インターネット接続などでエラーが発生しました。ライブラリのアップデートを行うことにしました。この後、jdk 1.8でエラーが発生します。

誰かがこの問題を解決するのに手伝ってもらえますか?

大丈夫

+0

あなたがjava8の機能が必要な場合は、ジャックツールチェーンを必要とします。また、https://developers.google.com/android/guides/setupが必要なものを使用する代わりに、 'com.google.android.gms:play-services:9.6.1'をコンパイルする必要があります。チェックを選択して実行可能ファイルにAPIをコンパイルします。 – Raghunandan

+1

次回は、スクリーンショットを撮る代わりに、エラーをコピーして貼り付けます。新しいタブで画像を開いていない限り、ほとんど読めません。 –

+0

@ th3pat3lありがとうございました。私はあなたの提案について私の質問を提供しました。ありがとうございました。 – gryzek

答えて

0

あなたのアプリケーションにMultidexを有効にする必要があると思います。

dependenciesにMultidexライブラリを追加し、defaultConfigでMultidexを有効にします。

例:次に `のAndroidManifest.xml」で、Multidexのインストールを有効に

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.3" 

    defaultConfig { 
     applicationId "com...." 
     minSdkVersion 19 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
     // Enabling multidex support. 
     multiDexEnabled true 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.google.firebase:firebase-database:9.6.1' 
    compile 'com.google.firebase:firebase-storage:9.6.1' 
    compile 'com.firebaseui:firebase-ui:0.4.3' 
    compile 'com.firebase:firebase-client-android:2.3.1' 
    compile 'com.google.android.gms:play-services:9.6.1' 
    compile 'com.android.support:multidex:1.0.0' 
} 

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.android.multidex.myapplication"> 
    <application 
     ... 
     android:name="android.support.multidex.MultiDexApplication"> 
     ... 
    </application> 
</manifest> 

出典:https://developer.android.com/studio/build/multidex.html#mdex-gradle

2

は基本的に、あなたもチェックして、バージョンの競合を解決したいと思います あなたのアプリでmultidexを有効にしているかどうかを確認してください。

私も同様の問題がありました。私のアプリでは、guava-retryingライブラリを使用しています。これはgoogle guavaライブラリのバージョン21を取得しています。Guavaバージョン21では、移植サポートをバックグラウンドで提供せずにJDK 1.8が必要です。

私はそれがグアバライブラリのバージョン19.0を使用するように、グアバ、再試行のライブラリを含むことによってそれを解決することができました:

compile ("com.github.rholder:guava-retrying:2.0.0") { 
    exclude group: 'com.google.guava', module: 'guava' 
} 
compile 'com.google.guava:guava:19.0' 
+0

は私にとっては機能しません。エラー:タスク ':app:transformClassesWithMultidexlistForFlavorQuaDebug'の実行に失敗しました。 > java.io.IOException:[/Users/m...uild/intermediates/multi-dex/flavorQua/debug/componentClasses.jar]を書き込めません([/Users/miguelsilva/.gradle/キャッシュ/モジュール-2 /ファイル-2.1/com.google.guava/guava-jdk5/17.0/463f8378feba44df7ba7cd9272d01837dad62b36/guava-jdk5-17.0.jar(;;;;; **。 – ByteArtisan

+0

ライブラリのいくつかは同じ依存関係を追加しています(あなたのケースではGuavaだと思います)。依存関係を実行し、重複した依存関係を除外して競合するライブラリを見つける必要があります。 Dagger 2のようなライブラリを確認し、Guavaをそれらから除外します。 –

関連する問題