web-dev-qa-db-fra.com

Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithMultidexlistForDebug' studio Android

Je crée un jeu sur buildbox. J'exporte le projet mais je ne parviens pas à démarrer le jeu sur Android studio Mon problème est que je ne parviens pas à exécuter l'application ni à générer un fichier apk. 

quelqu'un peut m'aider s'il vous plaît.

L'erreur

Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithMultidexlistForDebug' . Java.io.IOException: impossible d'écrire [C:\Utilisateurs\youne\Bureau\Android2\app\génération\intermédiaires\multi-dex\debug\composantClasses.jar] (impossible de lire [C:\Utilisateurs\youne .gradle\caches\transforms-1\files-1.1\support-core-ui-25.2.0.aar\9adfc8649fc899fbc5e371e8bc1c399a\jars\classes.jar (; ;; ;;;; **. classe)] (Entrée Zip en double [ classes.jar: Android/support/v4/vue/ViewPager $ 2.class]))

J'utilise

Android Studio 3.0

Version Java: Environnement d'exécution Java SE (version 1.8.0_73-b02).

Version d'évaluation: com.Android.tools.build:gradle:4.1

Et j'ai Multidex activé

Dans mon fichier build.gradle app:

Android {
  compileSdkVersion 27
  buildToolsVersion '27.0.1'

  defaultConfig {
    applicationId "com.drh.bird"
    minSdkVersion 14
    targetSdkVersion 23
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    compileOptions.encoding = 'ISO-8859-1'
    multiDexEnabled = true

    ndk {
      moduleName "player_shared"
    }
  }
  Android {
    useLibrary 'org.Apache.http.legacy'
  }
  sourceSets {
    main {
      jni.srcDirs = []
    }
  }

  buildTypes {}
  Android {
    defaultConfig {
      multiDexEnabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }

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

dependencies {
  compile 'com.Android.support:multidex:1.0.1'
  compile 'com.google.Android.gms:play-services:+'
  compile files('libs/dagger-1.2.2.jar')
  compile files('libs/javax.inject-1.jar')
  compile files('libs/nineoldandroids-2.4.0.jar')
  compile files('libs/support-v4-19.0.1.jar')
}
5
Younss Drhouj
implementation 'com.Android.support:appcompat-v7:27.1.0'
 implementation 'com.Android.support:design:27.1.0'
    implementation 'com.Android.support:support-v4:27.1.0'
 implementation 'com.Android.support:recyclerview-v7:27.1.0'

mettez à jour votre bibliothèque de support à 27.1.0 comme ci-dessus et supprimez les doublons

8
Ashwin H

Vous essayez d'utiliser compile files('libs/support-v4-19.0.1.jar') avec compileSdkVersion 27. Mais la bibliothèque de support devrait avoir une version majeure égale à compileSdkVersion

Utilisez implementation "com.Android.support:support-v4:27.0.1" à la place

De même, n'utilisez jamais + dans la version des dépendances. Vous pouvez avoir quelques problèmes lorsque la dépendance a été mise à jour

1
DeKaNszn

En effet, votre bibliothèque de support est en conflit. Vous devez toujours utiliser le même code de version pour compileSdkVersion, buildToolsVersion, targetSdkVersion et support library.

Vous ne devez pas utiliser de fichier jar avec 

compile files('libs/support-v4-19.0.1.jar')

Au lieu de cela, vous devez utiliser la bibliothèque de support correspondant à votre compileSdkVersion comme ceci:

implementation 'com.Android.support:support-v4:27.1.0'

Vous devez également utiliser une version exacte du service de jeu et vous assurer que vous utilisez une API spécifique. Pas comme ça:

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

Mais quelque chose comme ça:

// if you're using only ads
implementation 'com.google.Android.gms:play-services-ads:12.0.0'

votre méthode comptera peu et vous pourrez alors supprimer le multidex.

En fin de compte, votre build.gradle devrait ressembler à ceci:

Android {
  compileSdkVersion 27
  buildToolsVersion '27.0.1'

  defaultConfig {
    applicationId "com.drh.bird"
    minSdkVersion 14
    targetSdkVersion 27
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    compileOptions.encoding = 'ISO-8859-1'
    //multiDexEnabled = true

    ndk {
      moduleName "player_shared"
    }
  }
  Android {
    useLibrary 'org.Apache.http.legacy'
  }
  sourceSets {
    main {
      jni.srcDirs = []
    }
  }

  buildTypes {}
  Android {
    defaultConfig {
      //multiDexEnabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }

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

dependencies {
  //compile 'com.Android.support:multidex:1.0.1'
  implementation 'com.google.Android.gms:play-services:play-services-ads:12.0.0'
  implementation 'com.Android.support:support-v4:27.1.0'

  compile files('libs/dagger-1.2.2.jar')
  compile files('libs/javax.inject-1.jar')
  compile files('libs/nineoldandroids-2.4.0.jar')
  //compile files('libs/support-v4-19.0.1.jar')
}