私は自分のAndroidアプリを実行しているときにこのエラーが発生しました(私はそれをきれいにしてそれから構築しましたが、エラーはまだ存在しています)
エラー:タスク ':app:dexDebug'の実行に失敗しました。 _25\bin\Java.exeが終了値0以外で終了しました2
私のgradleファイル:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.rzr.rzevallosr.miappdepruebas"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// This library handles authentication and authorization
compile 'com.spotify.sdk:spotify-auth:1.0.0-beta9@aar'
// This library handles music playback
compile 'com.spotify.sdk:spotify-player:1.0.0-beta9@aar'
compile 'com.Android.support:appcompat-v7:21.0.3'
compile 'com.Android.support:recyclerview-v7:21.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile files('libs/spotify-web-api-Android-master-0.1.0.jar')
compile files('libs/okio-1.3.0.jar')
}
編集:私は "fileTree(dir: 'libs'、include:['* .jar'])をコンパイルすること"を見なかったので、私はただコメントする:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-Android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
そしてそれはうまくいきます。
"fileTree(dir: 'libs'、include:['* .jar'])"をコンパイルすること libsフォルダにjar拡張子があるので、この行をコメント(または削除)するだけです。
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-Android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
そしてそれはうまくいきます。とにかくありがとう!私の悪い.
この問題は、Androidによって課されている65Kメソッドのdex制限を超えていることが原因と考えられます。この問題は、プロジェクトをクリーンアップし、build.gradle、、またはの依存関係から未使用のライブラリやメソッドを削除することで解決できます。
それで、もしあなたがライブラリとメソッドを保持しなければならないならば、それからgradle configの中でそれを宣言することによってmulti dexサポートを可能にすることができます。
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
マルチデックスのサポートと65K以上のメソッドを使ったアプリケーションの開発 の詳細を読むことができます 。
私にとっては問題は、build.gradleに不要なcompieライブラリコードを追加していたことです
dependencies {
compile 'com.google.Android.gms:play-services:7.5.0'
}
これは65,000以上のメソッドを引き起こしていたので、それを削除し、同期を許可し、プロジェクトをクリーンにしてから再度実行してからこのエラーを止めました。私はこれらの行と同期されたプロジェクトを入れるように私はちょうど地図とgcmを必要としました
compile 'com.google.Android.gms:play-services-gcm:7.5.0'
compile 'com.google.Android.gms:play-services-location:7.5.0'
こんにちは人々私は再びこの問題に遭遇し、今回はそれはビルドツールのバージョンを変更するためのものであり、それは本当に私はこれらの私のアプリのbuild.gradleファイルを追加..マルチデックスを有効にする必要がありました..
defaultConfig {
applicationId "com.am.Android"
minSdkVersion 13
targetSdkVersion 23
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
incremental true
javaMaxHeapSize "2048M"
jumboMode = true
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:multidex:1.0.1'
}
そして、Applicationクラスを拡張し、このメソッドをクラス内に含めるクラスを作成します。
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
onCreateメソッドにも含める
@Override
public void onCreate() {
MultiDex.install(this);
super.onCreate();
}
誰かがまだこれに苦労していて、これがなぜ起こっているのか、どのように修正するのかわからない場合に備えて。実際、このエラー
エラー:タスク ':app:dexDebug'の実行に失敗しました。 > com.Android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process 'command' C:\ Program Files\Java\jdkx.x.x_xx\bin\Java.exe ''で終了ゼロ以外の終了値2
多くの理由が考えられますが、JDKのバージョンに関連するものではないため、間違った方向に時間を浪費しないでください。これらが起こる主な理由は2つあります
最初のケースは次のように修正できます。複数回含めた依存関係を見つけます。これを行うには、Android studioターミナルで次のコマンドを実行します
gradlew -q dependencies yourProjectName_usually_app:dependencies --configuration compile
これはすべての依存関係を返しますが、libフォルダーからインクルードするjarファイルは、アスタリスク(*)でマークされた重複の除去を試みます。これは常に可能とは限りませんが、場合によってはモジュールを除外しようとすることがあります何度も含まれています、あなたはこのようにすることができます
compile ('com.facebook.Android:facebook-Android-sdk:4.0.1'){
exclude module: 'support-v4'
}
メソッド制限の提案を超えた2番目のケースでは、含まれるライブラリを削除して最小化しようとします(最初のソリューションのように聞こえます)、それができない場合は、defaultDegにmultiDexEnabled trueを追加します
defaultConfig {
...
...
multiDexEnabled true
}
これはメソッドの制限を増やしますが、パフォーマンスの問題が発生する可能性があるため、最善の方法ではありません重要multiDexEnabled true
のみをdefaultConfig
に追加することはできません実際、Android <5 Lollipopを実行しているすべてのデバイスでは、予期しない動作とNoClassDefFoundError
が発生します。それを解決する方法は説明されています ここ
私は同じ問題を抱えていたし、私は不要だったライブラリを削除することを修正しました
compile fileTree(dir: 'libs', include: ['*.jar'])
そのライブラリを削除したところ、問題なくプロジェクトを実行できました。
私はデバッグビルド用にmultiDexを有効にすることで解決しました。
defaultConfig {
multiDexEnabled true
}
EmbeddedJDKは64ビットなので、Embedded JDK(32ビット)を拒否します
プロジェクトを右クリック - >オープンモジュール設定 - >SDKの場所 - > [埋め込みJDkを使用]をオフにしてからJDKパスを設定します。たとえば、Ubuntu/ usr/lib/jvm/Java-8-openjdk-i386
考えられる問題:dex 65kメソッドの制限を超えました。問題が発生する前にいくつかのライブラリまたはいくつかのメソッドを追加した可能性がありますか?
あなたがすでにあなたのSDKをアップデートしていて、あなたもgoogle-play-servicesを使っているのであれば、ある種の衝突があるので依存関係に注意する必要があります。
以下の手順に従ってください。 'com.google.Android.gms:play-services:+'をコンパイルしてください。 'com.google.Android.gms:play-services:6.5.87'に置き換えてください。
注:ここで「6.5.87」はgoogle-play-serviceのバージョンです。助けになれば幸いです。
私の場合、問題は私が追加した新しいライブラリ(gradleの依存関係)が他の依存関係に依存していて、そのうち2つの依存関係が私のビルドスクリプトの他のライブラリの依存関係と衝突/衝突していることでした。具体的には、Apache Commons Validator
(Eメール検証用)を追加しました。その2つの依存関係(Apache Commons Logging
およびApache Commons Collections
)はRobolectricで使用されるものと競合していました。そのため、新しい依存関係(modules
)を追加するときに、競合するバージョンの依存関係(Validator
)を除外しました。
compile ('commons-validator:commons-validator:1.4.1') {
exclude module: 'commons-logging'
exclude module: 'commons-collections'
}
次のgradleコマンドを使用して、gradleモジュールの依存関係(プロジェクトに1つのモジュールしかない場合があります)を確認できます(Android Studio/Intellijでプロジェクトを作成した場合は、自動的に作成されるgradle wrapperを使用します)。アイディア)。プロジェクトのルートディレクトリでこのコマンドを実行します。
./gradlew:あなたのモジュール名:依存関係
これらのexclude
ディレクティブを追加して実行を再試行した後、LoggingやCollectionsのようないくつかのApache commonsライブラリで使用されるduplicate file
に対してNOTICE.txt
エラーが発生しました。梱包するときは、そのテキストファイルを除外しなければなりませんでした。私のbuild.gradleに、私は追加しました:
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/NOTICE.txt'
}
新しいライブラリ(Validator
)は少し古いバージョンの依存関係/モジュール(他のライブラリ(Robolectric)によって私のビルドパスに既にインポートされている)で動作することができました。これはこの特定のライブラリの場合でしたが、他のライブラリは根本的な依存関係の最新のAPIを使用しているかもしれません(その場合、競合するモジュール/依存関係に依存する他のライブラリが新しいバージョン(それらのライブラリのエントリの下のモジュール/依存関係の古いバージョンを除外することによって)。
プロジェクト内の.jarファイルと競合していると思います。
私はlibsフォルダとその作業からAndroid-support-v4.jarを削除しました!
プロジェクトでエラーが発生した場合は、build.gradleファイルをチェックインしてください。
依存関係{
}
私の場合、2つ以上のライブラリが競合している(同じライブラリだが異なるバージョン)場合にこのエラーが発生しました。依存関係ブロックでアプリのbuild.gradleを確認してください。
私のJava SDKを最新版の1.7.0_79
に更新し、SDK Location
の下のProject Structure
を更新することで問題は解決しました。
私の問題は持っていることとは別にそれだった
com.Android.build.api.transform.TransformException:com.Android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:プロセス 'command' /Library/Java/JavaVirtualMachines/jdk1.X.X_XX .jdk/Contents/Home/bin/Java ''が終了値0以外で終了しました2
私はこの痕跡も持っていました:
キャッチされていない翻訳エラー:Java.lang.IllegalArgumentException:既に追加されています:Lcom/mypackage/ClassX;
問題は、2つの異なるライブラリに同じクラスを追加していたことです。いずれかのライブラリからクラス/ jarファイルを削除すると、プロジェクトは正しく実行されます。
私にとっては私は全体のプレイストアの依存関係を追加していました
「com.google.Android.gms:play-services:8.4.0」をコンパイルします。
しかし、私はグーグルマップだけを必要としたので、私はそれをより具体的にし、そしてエラーは解決された。
「com.google.Android.gms:play-services-maps:8.4.0」をコンパイルします。
確実に機能する2つの選択肢があります。
上記の方法でうまくいかなかった場合は、次の方法を試してください。
アプリレベルでbuild.gradleファイルに以下を追加します。
defaultConfig {
multiDexEnabled true
}
このエラーは、ライブラリの使用数が多いために発生します。私の場合は、 'comp' com.google.Android.gms:play-services-9.4.0 'でこのエラーが発生しました。 Google Playサービスの依存関係を追加しながら、必要なライブラリのみを指定します。デフォルトでは、すべてのライブラリが含まれています。
プロジェクトをKotlin
に変換した後に同じエラーが発生しました。私の問題は、処理中に私のjreの場所が無効なパスに変更されたことです(なぜこれが起こるのだろうか...私は時間を無駄にしました)。こうすることでそれを修正しました:
File > Project Structure > SDK Location
古いJDKインストールを指していたUse embedded JDK
オプションのチェックを外し、正しいものを選択しました。
/home/my_user/jdk1.8.0_101
これを変更した後、エラーは消えました
何が正確にエラーを引き起こしているのかを知りたい場合は、./gradlew assembleDebug --stacktrace --debug
のように、gradle terminalでプロジェクトをビルドしてみてください。私の場合com.Android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
で以下のエラーを見ました
これは、Googleマップを自分のプロジェクトに統合しようとしたときに起こりました。それを修正するために、私は単に私が含めていたライブラリをチェックしました
compile 'com.google.Android.gms:play-services:9.8.0'
私は単にそれをに変更しました
compile 'com.google.Android.gms:play-services-maps:9.8.0'
そして問題はなくなった
あなたはPCにあなたの装置を接続するために低品質のケーブル/欠陥のあるケーブルを使っているかもしれません、私はケーブルを交換しました、そしてそれは私のために働きました。
私の場合、問題は23.0.0 rc3であるツールのバージョンをビルドすることでした、そして私は22.0.1に変更し、私の問題を修正しました。
あなたのgradle.build
ファイルで、これを使ってください
"compile fileTree(dir: 'libs', include: ['*.jar'])"
そしてそれはうまくいきます。