web-dev-qa-db-ger.com

Fehler: Ausführung fehlgeschlagen für Task ': app: transformClassesWithMultidexlistForDebug' Android Studio

Ich erstelle ein Spiel auf Buildbox. Ich exportiere das Projekt, kann das Spiel aber nicht auf Android Studio starten. Mein Problem ist, dass ich die Anwendung nicht ausführen oder eine APK-Datei erstellen kann 

jemand kann mir bitte helfen.

Der Fehler

Fehler: Ausführung fehlgeschlagen für Task ': app: transformClassesWithMultidexlistForDebug' . Java.io.IOException: Ich kann [C:\Users\youne\Desktop\Android2\app\build\intermediates\multi-dex\debug\componentClasses.jar] nicht schreiben (Kann [C:\Users\youne nicht lesen.) .gradle\caches\transforms-1\files-1.1\support-core-ui-25.2.0.aar\9adfc8649fc899fbc5e371e8bc1c399a\jars\classes.jar (;;;;;; **. class)] (Duplicate Zip-Eintrag) classes.jar: Android/support/v4/view/ViewPager $ 2.class]))

Ich benutze

Android Studio 3.0

Java-Version: Java (TM) SE-Laufzeitumgebung (Build 1.8.0_73-b02).

Gradle-Version: com.Android.tools.build:gradle: 4.1

Und ich habe Multidex aktiviert

In meiner App build.gradle-Datei:

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'

aktualisieren Sie Ihre gesamte Support-Bibliothek wie oben beschrieben auf 27.1.0, und entfernen Sie Duplikate

8
Ashwin H

Sie versuchen, compile files('libs/support-v4-19.0.1.jar') mit compileSdkVersion 27 zu verwenden. Die Support-Bibliothek sollte jedoch eine Hauptversion haben, die compileSdkVersion entspricht.

Verwenden Sie stattdessen implementation "com.Android.support:support-v4:27.0.1"

Verwenden Sie niemals + in der Version der Abhängigkeiten. Sie können Probleme bekommen, wenn die Abhängigkeit aktualisiert wurde

1
DeKaNszn

Dies liegt daran, dass Ihre Unterstützungsbibliothek in Konflikt steht. Sie sollten immer den gleichen Versionscode für compileSdkVersion, buildToolsVersion, targetSdkVersion und support library verwenden.

Sie sollten keine JAR-Datei mit verwenden 

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

Stattdessen müssen Sie eine Unterstützungsbibliothek verwenden, die mit Ihrer compileSdkVersion wie folgt übereinstimmt:

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

Sie müssen auch eine genaue Version des Wiedergabedienstes verwenden und sicherstellen, dass Sie eine bestimmte individuelle API verwenden. So nicht:

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

Aber so etwas:

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

dadurch wird Ihre Methode klein, und Sie können den Multidex entfernen.

Am Ende sollte dein build.gradle so aussehen:

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')
}