【问题标题】:Amazon Cognito Auth library causes gradle IOException (Duplicate zip entry)Amazon Cognito Auth 库导致 gradle IOException(重复的 zip 条目)
【发布时间】:2018-06-22 11:49:11
【问题描述】:

自从我将 CognitoAuth 更新到 v2.6.13 后,我就遇到了 gradle 的编译问题。这只发生在发布版本中。

认知库

'com.amazonaws:aws-android-sdk-cognitoauth:2.6.13'

我收到的错误如下:

警告:处理任务 java.io.IOException 时出现异常:不能 写 [C:\JAVASDK\AndroidStudio\AS_Workspace\example.android\app\build\intermediates\transforms\proguard\tech\release\0.jar] (看不懂 [C:\Users\jeff.gradle\caches\transforms-1\files-1.1\aws-android-sdk-cognitoauth-2.6.13.aar\cc705c348189e750e6a133ffd448563c\jars\classes.jar(;;;;;;** 。班级)] (重复的 zip 条目 [classes.jar:com/amazonaws/cognito/clientcontext/datacollection/BuildDataCollector.class]))

从研究来看,我似乎需要排除一些东西,但我不知道是什么。我错过了什么?这是否更像是一个 proguard 问题,因为这只会在发布版本中失败?

编辑

apply plugin: 'com.android.library'

// top-level build file to help synchronize library versions
ext {
    supportLib = "25.3.1"
    googleLib = "11.6.0"
    amazonLib = "2.6.3"
}

allprojects {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        maven { url 'https://zendesk.jfrog.io/zendesk/repo' }
        maven { url 'https://jitpack.io' }
        jcenter()
        google()
    }
}

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    // construct version name
    def versionMajor = 2
    def versionMinor = 0
    def versionPatch = 0
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 26
        versionName "${versionMajor}.${versionMinor}.${versionPatch}"
        versionCode 1
    }
    buildTypes {
        debug {
            buildConfigField "String", "FEATURES", "\"Device Utilities, "Google Service APIs, TextToSpeech\""
            manifestPlaceholders = [build_version: "${versionMajor}.${versionMinor}.${versionPatch}"]
            // debuggable
            debuggable true
        }
        stage {
            buildConfigField "String", "FEATURES", "\"Device Utilities, "Google Service APIs, TextToSpeech\""
            manifestPlaceholders = [build_version: "${versionMajor}.${versionMinor}.${versionPatch}"]
            // debuggable
            debuggable true
        }
        release {
            buildConfigField "String", "FEATURES", "\"Device Utilities, "Google Service APIs, TextToSpeech\""
            manifestPlaceholders = [build_version: "${versionMajor}.${versionMinor}.${versionPatch}"]
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dependencies {
        api files('libs/volley.jar')
        // okhttp for requests
        // gson library
        api 'com.google.code.gson:gson:2.8.0'
        // mixpanel
        api 'com.mixpanel.android:mixpanel-android:5.2.1'
        // google play services
        api "com.google.android.gms:play-services:${googleLib}"
        // android support libraries
        api 'com.android.support:multidex:1.0.2'
        api "com.android.support:support-annotations:${supportLib}"
        //noinspection GradleCompatible
        api "com.android.support:cardview-v7:${supportLib}"
        //noinspection GradleCompatible
        api "com.android.support:appcompat-v7:${supportLib}"
        //noinspection GradleCompatible
        api "com.android.support:recyclerview-v7:${supportLib}"
        //noinspection GradleCompatible
        api "com.android.support:design:${supportLib}"
        //noinspection GradleCompatible
        api "com.android.support:appcompat-v7:${supportLib}"
        //noinspection GradleCompatible
        api "com.android.support:customtabs:${supportLib}"
        // amazon libraries
        api "com.amazonaws:aws-android-sdk-cognito:${amazonLib}"
        api "com.amazonaws:aws-android-sdk-cognitoidentityprovider:${amazonLib}"
        api 'com.amazonaws:aws-android-sdk-cognitoauth:2.6.13'
        // unit testing dependencies
        testApi 'junit:junit:4.12'
        // set this dependency if you want to use Mockito
        testApi 'org.mockito:mockito-core:2.7.22'
        // set this dependency if you want to use Hamcrest matching
        androidTestApi 'org.hamcrest:hamcrest-library:1.3'
    }

}

【问题讨论】:

  • 你能发布你的 build.gradle 文件的依赖部分的 sn-p 吗?你的依赖项中有aws-android-sdk-cognitoauthaws-android-sdk-cognitoidentityprovider 吗?
  • @Karthikeyan 我为你发布了整个 gradle 文件
  • 感谢发布 build.gradle。我们现在意识到了这个问题,当我在最新版本中包含 cognitoauth 和 cognitoidentityprovider 时,我能够重现它。我们正在调查它,我们将尽快解决这个问题。问题解决后,我们将在此处更新您,然后您可以将两个库都包含在最新版本中而不会出现任何问题。感谢您的耐心等待,对于给您带来的不便,我们深表歉意。
  • 我们已经在 v2.6.14 中修复了这个问题。您可以尝试将这两个 SDK 都升级到 2.6.14 吗?

标签: android amazon-web-services android-gradle-plugin


【解决方案1】:

在 Android Studio 终端中使用以下命令获取依赖冲突数据 - [替换为您的应用名称]

./gradlew -q :<app>:dependencyInsight --dependency aws-android-sdk-cognitoauth --configuration compile

在您的 build.gradle 文件中的每个有冲突的编译库条目下添加以下两行。

例如:

compile('com.xyz:abc:1.1.0-RELEASE') {
        exclude module: 'aws-android-sdk-cognitoauth'
        exclude group: 'com.amazonaws'
}

【讨论】:

  • 不确定 sudo 是否有帮助。不确定这是否有帮助 - stackoverflow.com/questions/17668265/gradlew-permission-denied
  • 你能发布你的 build.gradle 文件的依赖部分的 sn-p 吗?您的依赖项中是否同时具有 aws-android-sdk-cognitoauth 和 aws-android-sdk-cognitoidentityprovider?您正在运行发布版本吗?
  • 感谢大家的帮助!我能够解决这个问题。我最终只更新了 cognitoauth。看看我编辑的帖子,我包含了我的整个 gradle。
  • 感谢发布 build.gradle。我们现在知道了这个问题,当我在最新版本中同时包含 cognitoauth 和 cognitoidentityprovider 时,我能够重现它。我们正在调查它,我们将尽快解决这个问题。问题解决后,我们将在此处更新您,然后您可以将两个库都包含在最新版本中而不会出现任何问题。感谢您的耐心等待,对于给您带来的不便,我们深表歉意。
  • @portfoliobuilder 我们已在 v2.6.14 中修复了此问题。您可以尝试将这两个 SDK 都升级到 2.6.14 吗?
【解决方案2】:

同时导入aws-android-sdk-cognitoidentityprovideraws-android-sdk-cognitoauth,版本>= 2.6.6 和2.6.13 时会出现此问题。这是因为这两个库都包含一个常见的 jar。因此,发布构建(gradle assembleRelease 任务)将失败并出现异常。

这已在v2.6.14 中得到修复,其中底层依赖项已成为这两个库所依赖的单独库。

【讨论】:

  • 我喜欢这样的声音。谢谢!
猜你喜欢
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多