Не удалось выполнить задачу после обновления студии Android до версии 3.0

Когда я обновил свою Android Studio 3.0, я получаю сообщение об ошибке

unable to merge with dex.

Затем я добавил mutiDexEnabled true, а также добавил com.android.support:multidex:1.0.1 в build.gradle.

Затем я получаю сообщение об ошибке ниже:

Ошибка: не удалось выполнить задачу ':app:transformClassesWithMultidexlistForDebug'. java.io.IOException: невозможно записать [C:\Users\user\AndroidStudioProjects\KnightFox-IN BUDGET\app\build\intermediates\multi-dex\debug\componentClasses.jar] (не удается прочитать [C:\ Пользователи\user.gradle\caches\transforms-1\files-1.1\play-services-ads-lite-11.4.2.aar\9a54afd7907fee993ecc421b66ed4228\jars\classes.jar(;;;;;;**.class)] (Повторяющаяся запись zip [classes.jar:com/google/ads/mediation/MediationServerParameters$Parameter.class]))

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'

    defaultConfig {
        applicationId "com.copperseeds.android.kunjachamman.applicationin.budget"
        minSdkVersion 14
        targetSdkVersion 26
        multiDexEnabled true
    }


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

}



dependencies {
    implementation files('libs/ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar')
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    implementation 'com.android.support:appcompat-v7:26.0.0'
    implementation 'com.android.support:support-annotations:26.0.0'
    implementation 'com.android.support:support-v4:26.0.0'
    implementation 'com.github.navasmdc:MaterialDesign:1.5@aar'
    testImplementation 'junit:junit:4.12'
    implementation project(':ORMDroid')
    implementation project(':FacebookSDK')
    implementation project(':standOut')
    implementation files('libs/gcm.jar')
    implementation files('libs/google-play-services.jar')
    implementation 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'    
}

person jasmin    schedule 02.11.2017    source источник
comment
Вы пробовали очищать проект?   -  person Aswin P Ashok    schedule 02.11.2017


Ответы (6)


Попробуйте удалить папку сборки приложения, а не Clean-Rebuild-Run ваш проект. если не работает, выполните Недействительные кеши/Перезапуск.

Удачного кодирования!!

person Hemant Parmar    schedule 02.11.2017

Однажды попробовав эти шаги,

Шаг 1. Удалите все файлы build и папку .gradle,

Шаг 2. Добавьте приведенный ниже код в свой gradle.properties,

 android.enableAapt2=false

Шаг 3. Затем синхронизируйте проект Android.

person Aman Gupta - ΔMΔN    schedule 02.11.2017
comment
я не вижу gradle.properties - person jasmin; 02.11.2017
comment
Если его нет, вы можете создать пакет ресурсов, щелкнув правой кнопкой мыши проект, щелкнув правой кнопкой мыши проект -> Создать -> Пакет ресурсов. Затем создайте файл с именем gradle. Ваш файл gradle.properties будет отображаться чуть ниже файла build.gradle. Затем напишите этот код там. - person Aman Gupta - ΔMΔN; 02.11.2017

Попробуйте buildToolsVersion "26.0.0", а затем просто перезапустите Android Studio.

person IndianFlash    schedule 02.11.2017

Вам не нужно добавлять файлы jar для сервисов Play при добавлении dependencies.

удалите это из своего Build.Gradle

implementation files('libs/google-play-services.jar')

чем Clear-Rebuild-Run ваш проект

person AskNilesh    schedule 02.11.2017
comment
Я удалил файл jar, но он у меня не работает. Я снова получаю ту же ошибку. - person jasmin; 02.11.2017
comment
@jasmin удали и это implementation files('libs/gcm.jar') - person AskNilesh; 02.11.2017

Вы не должны работать с библиотеками, оканчивающимися на +. Вы должны указать версию. implementation 'com.google.android.gms:play-services:+' должно быть

implementation 'com.google.android.gms:play-services:11.4.2'

тогда build.gradle будет:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'

    defaultConfig {
        applicationId "com.copperseeds.android.kunjachamman.applicationin.budget"
        minSdkVersion 14
        targetSdkVersion 26
        multiDexEnabled true
    }


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

}



dependencies {
    implementation files('libs/ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar')
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    implementation 'com.android.support:appcompat-v7:26.0.0'
    implementation 'com.android.support:support-annotations:26.0.0'
    implementation 'com.android.support:support-v4:26.0.0'
    implementation 'com.github.navasmdc:MaterialDesign:1.5@aar'
    testImplementation 'junit:junit:4.12'
    implementation project(':ORMDroid')
    implementation project(':FacebookSDK')
    implementation project(':standOut')
    implementation files('libs/gcm.jar')
    implementation files('libs/google-play-services.jar')
    implementation 'com.google.android.gms:play-services:11.4.2'
    compile 'com.android.support:multidex:1.0.1'    
}
person Nawrez    schedule 02.11.2017

Вам все равно нужно добавить в манифест, если вы не расширяете класс приложения

  <application
            android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>

Если вы расширяете класс приложения, следуйте инструкциям по этой ссылке:

https://developer.android.com/studio/build/multidex.html

Не используйте банки, просто используйте репозитории напрямую

не использовать компиляцию использовать реализацию

Также вам необходимо обновить Android Studio до версии 3.0. Также убедитесь, что вы добавили новый репозиторий в корневой каталог gradle.build:

repositories {
    maven {
        url 'https://maven.google.com'
    }
}

Вы также можете использовать с более новой оболочкой gradle

repositories {
        maven {
            google()
        }
    }

Если вы использовали привязку данных в репо, убедитесь, что вы добавили

android {
    ....
    dataBinding {
        enabled = true
    }
}

Это лучший способ сделать это.

На корневом уровне используйте gradle.build ниже

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

и в вашем файле gradle-wrapper.properties измените версию оболочки, как показано ниже.

distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip

Также на уровне вашего приложения build.gradle убедитесь, что вы используете версию 26, как показано ниже.

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "com.xxxx"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
person Niraj Sanghani    schedule 02.11.2017