私は自分のアプリで、私はこれらのライブラリを追加し、グーグルサインインを統合しようとしています:
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
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
注意すべきもう一つのことは、あなたが使用していないということです
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'
私は自分のプロジェクトをきれいにしなければならなくて、その後それはうまく構築されました。
プロジェクトに新しいメソッドを追加したときに、このエラーが発生し始めました。私は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
ディレクトリを手動で削除するエラー
エラー:タスク> ':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 。
私も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があるので、ビルド中に他の本当の問題を見つけるのは混乱します。
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>
私の場合はbuildToolsVersionを "24"から "23.0.2"に変更して問題を解決してください。
AS 1.5.1を使用していますが、同じ問題が発生しました。しかし、プロジェクトをきれいにするだけではうまくいきませんので、試してみました。
これは私と一緒に働いたので、私はこれが助けを願っています。
私の場合、例外はすべての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'
最初に中間ファイルを削除しますAPP FOLDER\app\build \mediates ORプロジェクトをクリーンアップしてから再構築します。
追加
multiDexEnabled true
すなわち.
defaultConfig {
multiDexEnabled true
}
それは私のために働きます
私はgitを介して古いバージョンにロールバックしたときに私は同じ問題を抱えていた、とそのバージョンは、1つのサードパーティのAPIの以前の.jarライブラリを持っていた。
最新のbuildToolsVersion
を使用するように変更することで、この問題を解決しました
Android {
//...
buildToolsVersion '26.0.2' // change from '23.0.2'
//...
}
書き込み回答は gradle に置くdefaultConfig {multiDexEnabled true}それから マニフェストのアプリケーション名 Android:name = "Android.support.multidex.MultiDexApplication"この回答が誰かに役立つことを願います
私はこの問題を追加することで解決しました:build.gradle
:
defaultConfig {
multiDexEnabled true
}
local.properties
では、
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
依存関係について言及する:
compile 'com.Android.support:multidex:1.0.1'
清掃して再構築します。
このコードは問題を解決しました
defaultConfig {
multiDexEnabled true
}
Googleサインインを実装する最も簡単な方法は、次のとおりです。ANDROIDのGOOGLEサインイン
また試してみる
dexOptions {
javaMaxHeapSize "4g"
}
異なるサービスに対しても同じバージョン番号を使用してください。
異なる依存関係が同じjarを持つ場合、このビルドエラーも発生します。
例えば:
compile('com.a.b:library1');
compile('com.c.d:library2');
"library1"と "library2"に同じxxx.jar
というjarがある場合、これはそのようなエラーになります。
いくつかのpngとビルド番号をgradleに変更したので、これを取得しました。何の洗浄も再起動も助けにはなりませんでした。インスタントランを無効にすると、私のためにそれを修正しました。 YMMV
最新のGradleバージョン、つまりclasspath 'com.Android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3'
を使用している場合は、SDKマネージャから最新のサポートリポジトリを更新し、プロジェクト全体を再構築してください。
あなたがcordova pluginのためにこの参照を追加する必要があるなら、あなたのplugin.xmlファイルに次の行を追加してください。
<framework src="com.Android.support:support-v4:+" />
私は同じオプションを持っていました、そして私がインスタントランをオフにするとすぐに、それは私のAPI16デバイスでうまくいきました、しかし、API24デバイスでそれはインスタントランでうまく働きました。
誰かが同じ問題を抱えているのに役立ちます
「インスタントラン」が有効な場合は、無効にします。
Eclipseのメモリリークが原因で私に起こりました。コンピューターを再起動しなければなりませんでした。
[ビルド] - [ビルドタイプの編集] - [プロパティ]タブ - [ビルドタイプバージョン]に移動して、バージョン23.0.1にダウングレードするだけです。 OKをクリックしてください。これはAndroidスタジオ1.5で動作します。それは私のために働きました。