web-dev-qa-db-ja.com

com.Android.build.transform.api.TransformException

私は自分のアプリで、私はこれらのライブラリを追加し、グーグルサインインを統合しようとしています:

compile 'com.google.Android.gms:play-services-identity:8.1.0'
compile 'com.google.Android.gms:play-services-plus:8.1.0'

また、これをプロジェクトビルドの評価に追加します。

classpath 'com.google.gms:google-services:1.4.0-beta3'

アプリビルドグラドルにプラグインも追加します。

apply plugin: 'com.google.gms.google-services'

その後、必要な権限を追加しますが、私は自分のアプリを実行しようとすると、このエラーを受け取りました:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.Android.build.transform.api.TransformException: com.Android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\Java.exe'' finished with non-zero exit value 2
159
saeed shahini

App build.gradle ファイルにmultiDexEnabled trueを追加してみてください。

 defaultConfig {
    multiDexEnabled true
}

編集:

まずSteveの answer を試してください。それが頻繁に起こる場合や最初のステップでmultiDexEnabledが助けにならない場合は助けになるでしょう。ここでより深くDigを愛する人のために、(より多くの答えと共に)いくつかの類似した問題があります:

:app:dexDebug ExecExceptionが0以外の終了値2で終了しました /

エラー:タスク ':app:dexDebug'の実行に失敗しました。 com.Android.ide.common.process.ProcessException

314
JuliusScript

注意すべきもう一つのことは、あなたが使用していないということです

compile 'com.google.Android.gms:play-services:8.3.0'

それはすべてのプレイサービスをインポートするでしょう、そしてそれはただ一つのdex APKの65535の方法限界を超えるためにこんにちは世界より少しだけかかるでしょう。

常に必要なサービスだけを指定してください。

compile 'com.google.Android.gms:play-services-identity:8.3.0'
compile 'com.google.Android.gms:play-services-plus:8.3.0'
compile 'com.google.Android.gms:play-services-gcm:8.3.0'
145
A.Grandt

私は自分のプロジェクトをきれいにしなければならなくて、その後それはうまく構築されました。

137
Steve Ganem

プロジェクトに新しいメソッドを追加したときに、このエラーが発生し始めました。私は65kメソッドの限界にはほど遠いので、手助けができれば自分のプロジェクトでmultiDexサポートを有効にしたくないと思っていました。

私は:app:transformClassesForDexForDebugタスクに利用可能なメモリを増やすことでそれを解決しました。 gradle.build javaMaxHeapSize を指定してこれを行いました。

gradle.build

Android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

私はこの問題に対する他の一般的な解決策で成功しなかった後にこれを試しました:

  • プロジェクトを実行するclean
  • プロジェクトから/app/buildおよび/buildディレクトリを手動で削除する
  • Gradleキャッシュを無効にしてAndroid Studioを再起動する

エラー

エラー:タスク> ':app:transformClassesWithDexForDebug'の実行に失敗しました。 com.Android.build.api.transform.TransformException:com.Android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException: 'コマンド' /Library/Java/JavaVirtualMachines/jdk1.8.0_45を処理します。 jdk/Contents/Home/bin/Java ''が終了値0以外で終了しました1

注:DEXタスクに使用可能なメモリーを増やすと、メモリーが少ないシステムでパフォーマンス上の問題が発生する可能性があります - link

23
Maurice Gavin

私もAndroid Studio 1.5.1とgradle 1.5.0で同様の問題に直面しました。アプリケーションのbuild.gradleファイルに自動的に追加される可能性のある不要なライブラリを依存関係から削除するだけです。 1つは、「com.google.Android.gms:play-services:8.4.0」をコンパイルすることです。だから、ベストプラクティスのために広告のように特定のプレイサービスライブラリのみを含めるようにしてみてください

dependencies {
    compile 'com.google.Android.gms:play-services-ads:8.4.0'
}

defaultConfig {
    multiDexEnabled true
}

これで問題は解決しますが、gradle consoleにたくさんのNotesがあるので、ビルド中に他の本当の問題を見つけるのは混乱します。

8
raul

Android のドキュメントを見ることができます

Android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.Android.support:multidex:1.0.0'
}

Manifest.xml

<?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>
4
David Hackro

私の場合はbuildToolsVersionを "24"から "23.0.2"に変更して問題を解決してください。

3
Ayman Mahgoub

AS 1.5.1を使用していますが、同じ問題が発生しました。しかし、プロジェクトをきれいにするだけではうまくいきませんので、試してみました。

  • クリーンプロジェクト
  • aSを再起動
  • プロジェクトを同期

これは私と一緒に働いたので、私はこれが助けを願っています。

3
kcNeko

私の場合、例外はすべてのGoogle Playサービス拡張機能が次のように同じバージョンではないために発生しました

 compile 'com.google.Android.gms:play-services-plus:9.8.0'
 compile 'com.google.Android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.Android.gms:play-services-analytics:8.3.0'

これをに変更したときにうまくいきました

compile 'com.google.Android.gms:play-services-plus:9.8.0'
 compile 'com.google.Android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.Android.gms:play-services-analytics:9.8.0'
2
Uma Achanta

最初に中間ファイルを削除しますAPP FOLDER\app\build \mediates ORプロジェクトをクリーンアップしてから再構築します。

追加

multiDexEnabled true

すなわち.

defaultConfig {
        multiDexEnabled true
}

それは私のために働きます

私はgitを介して古いバージョンにロールバックしたときに私は同じ問題を抱えていた、とそのバージョンは、1つのサードパーティのAPIの以前の.jarライブラリを持っていた。

1
lxknvlk

最新のbuildToolsVersionを使用するように変更することで、この問題を解決しました

Android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}
1
Tung Duong

書き込み回答は gradle に置くdefaultConfig {multiDexEnabled true}それから マニフェストのアプリケーション名 Android:name = "Android.support.multidex.MultiDexApplication"この回答が誰かに役立つことを願います

0
Mosa

私はこの問題を追加することで解決しました:build.gradle

defaultConfig {
    multiDexEnabled true
}

local.propertiesでは、

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

依存関係について言及する:

compile 'com.Android.support:multidex:1.0.1'

清掃して再構築します。

0

このコードは問題を解決しました

defaultConfig {
        multiDexEnabled true
}

Googleサインインを実装する最も簡単な方法は、次のとおりです。ANDROIDのGOOGLEサインイン

また試してみる

dexOptions {
        javaMaxHeapSize "4g" 
    }

異なるサービスに対しても同じバージョン番号を使用してください。

0
user6435056

異なる依存関係が同じjarを持つ場合、このビルドエラーも発生します。

例えば:

compile('com.a.b:library1');
compile('com.c.d:library2');

"library1"と "library2"に同じxxx.jarというjarがある場合、これはそのようなエラーになります。

0
wqycsu

いくつかのpngとビルド番号をgradleに変更したので、これを取得しました。何の洗浄も再起動も助けにはなりませんでした。インスタントランを無効にすると、私のためにそれを修正しました。 YMMV

0
SteelBytes

最新のGradleバージョン、つまりclasspath 'com.Android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3'を使用している場合は、SDKマネージャから最新のサポートリポジトリを更新し、プロジェクト全体を再構築してください。

0
goonerDroid

あなたがcordova pluginのためにこの参照を追加する必要があるなら、あなたのplugin.xmlファイルに次の行を追加してください。

<framework src="com.Android.support:support-v4:+" />
0
Adexe Rivera

私は同じオプションを持っていました、そして私がインスタントランをオフにするとすぐに、それは私のAPI16デバイスでうまくいきました、しかし、API24デバイスでそれはインスタントランでうまく働きました。

誰かが同じ問題を抱えているのに役立ちます

0
x10sion

「インスタントラン」が有効な場合は、無効にします。

0
Ravid Rinek

Eclipseのメモリリークが原因で私に起こりました。コンピューターを再起動しなければなりませんでした。

0
Ronen Festinger

[ビルド] - [ビルドタイプの編集] - [プロパティ]タブ - [ビルドタイプバージョン]に移動して、バージョン23.0.1にダウングレードするだけです。 OKをクリックしてください。これはAndroidスタジオ1.5で動作します。それは私のために働きました。

0
Dima Rowland