错误:执行“:app:transformClassesWithMultidexlistForDebug”任务失败, Android Studio。

5
我在Buildbox上创建了一个游戏,导出项目后无法在Android Studio上启动游戏。我的问题是无法运行应用程序或生成apk文件。请有人帮帮我。
错误为:"Error:执行任务':app:transformClassesWithMultidexlistForDebug'失败。java.io.IOException:无法写入[C:\Users\youne\Desktop\android2\app\build\intermediates\multi-dex\debug\componentClasses.jar](无法读取[C:\Users\youne.gradle\caches\transforms- 1 \files-1.1\support-core-ui-25.2.0.aar\9adfc8649fc899fbc5e371e8bc1c399a\jars\classes.jar(;;;;;; ** .class)](重复的zip条目[classes.jar:android/support/v4/view/ViewPager $ 2.class]))。"
我正在使用Android Studio 3.0,Java版本为Java(TM) SE Runtime Environment(版本1.8.0_73-b02),Gradle版本为com.android.tools.build:gradle:4.1,并且已启用Multidex。在我的app build.gradle文件中:
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')
}
3个回答

8
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'

请将所有支持库更新到27.1.0,类似上述操作,并删除重复的库。


1
您正在尝试使用compile files('libs/support-v4-19.0.1.jar')compileSdkVersion 27。但是支持库的主要版本应该等于compileSdkVersion 改用implementation "com.android.support:support-v4:27.0.1" 此外,永远不要在依赖版本中使用+。当依赖项已更新时可能会出现问题

0
这是因为您的支持库存在冲突。您应该始终使用相同的版本代码来编译compileSdkVersionbuildToolsVersiontargetSdkVersionsupport library
您不应该使用带有jar文件的方式。
compile files('libs/support-v4-19.0.1.jar')

相反,您需要使用与您的compileSdkVersion匹配的支持库,如下所示:

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

您还需要使用精确版本的Play服务,并确保您正在使用特定的个人API。不要像这样:

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

但是类似这样的:

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

这将使您的方法计数变小,然后您可以删除multidex。

最终,您的build.gradle应该像这样:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接