При обновлении android stdio, ошибка: сбой при выполнении задачи ':app:dexDebug'. > com.android.ide.common.process.ProcessException:

Сегодня, когда я обновил свой Android Stdio, то я увидел следующую ошибку, я не могу понять причину этой ошибки, но это дает много

truble . 
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 2

и это тоже под предыдущей ошибкой,

Error:Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
AGPBI: {"kind":"simple","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","sources":[{}]}
AGPBI: {"kind":"simple","text":"com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim;","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:277)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:245)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.Main.main(Main.java:106)","sources":[{}]}

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 2

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Это мое досье,

// Top-level build file where you can add configuration options common to all sub-projects/modules.

task wrapper(type: Wrapper) {
    gradleVersion = '2.2.1' 
}
buildscript {
    repositories {
        jcenter()
         mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
         mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Это второй файл build.gradle,

apply plugin: 'com.android.application'


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.shubham.MeraIndore"
        minSdkVersion 12
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.androidanimations:library:1.0.3@aar'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile project(':library')
}

Пожалуйста, помогите мне.

5 ответов

Решение

Это всегда происходит потому, что вы включили multiDex только для сборок релизов, а не для отладочных сборок.

Попробуй это:

defaultConfig {
    multiDexEnabled true
}
 dependencies {
...
// add this since you are using minSdkVersion less than 21
compile 'com.android.support:multidex:1.0.1'
 }

и установите для multiDexEnabled значение true в defaultConfig следующим образом

defaultConfig {
applicationId "com.shubham.MeraIndore"
minSdkVersion 12
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true

}

 You also need to reference the MultiDexApplication class in your manifest    by adding      android:name="android.support.multidex.MultiDexApplication" to application tag.

Примечание. Если вместо этого ваше приложение расширяет класс Application, вы можете переопределить метод attachBaseContext() и вызвать MultiDex.install(this), чтобы включить мультидекс, как этот.

 @Override
 protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);

}

Одна из причин этого - достижение предела в 65К. Вы можете решить эту проблему, удалив неиспользуемый код / ​​библиотеки. Для этого вам нужно взглянуть на ваши зависимости. Чтобы перечислить ваши зависимости вы можете выполнить

gradlew -q dependencies app:dependencies --configuration compile

Команда в корневом каталоге вашего проекта.

Или, если нет кода / библиотек для удаления, вы можете использовать поддержку multidex

dependencies {
    ...
    // add this since you are using minSdkVersion less than 21
    compile 'com.android.support:multidex:1.0.1'
}

и установить multiDexEnabled чтобы правда в defaultConfig как это

defaultConfig {
    applicationId "com.shubham.MeraIndore"
    minSdkVersion 12
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

Вы также должны ссылаться на MultiDexApplication класс в вашем манифесте, добавив android:name="android.support.multidex.MultiDexApplication" в тег приложения.

Примечание. Если вместо этого ваше приложение расширяет Application класс, вы можете переопределить attachBaseContext() метод и вызов MultiDex.install(this) чтобы включить мультидекс, как это.

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

Для более подробной информации смотрите этот SO ответ и этот.

Добавьте это в зависимости вашего приложения от gradle

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

добавьте это в defaultConfig

  multiDexEnabled true

добавьте это в свое приложение gradle

dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}

приложение синхронизации

и, наконец, добавить следующее к приложению в файле манифеста

   android:name="android.support.multidex.MultiDexApplication"

Похоже, вы используете разные версии библиотеки поддержки Android (23.0.1 и 23.1.1). Может быть, вы должны попробовать использовать ту же версию.

Также, как предложено ранее, перечислите свои зависимости, чтобы убедиться, что они используют те же версии, что и вы из библиотеки поддержки:

./gradlew app:dependencies --configuration compile
Другие вопросы по тегам