android - 如何使用 com.facebook.fresco 和 com.parse :parse-android without confilicting each other?

标签 android android-studio parse-platform gradle fresco

我对 android studio 的 gradle 还很陌生。我正在构建一个项目,并使用 fresco 将图像加载到我的 Android 应用程序中。现在我需要集成推送通知服务,因此决定使用解析。但是当我尝试集成解析时出现错误:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: bolts/AggregateException.class

经过一番搜索后,我发现 Fresco 库和 Parse 库都使用 Bolt。所以我从 Fresco 中排除了 Bolts-android,现在我收到此错误:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java'' finished with non-zero exit value 3

那么如何在我的 Android 应用程序中同时使用 Fresco 库和 Parse 库呢?我的 gradle 构建文件如下:

        apply plugin: 'com.android.application'
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig {
            applicationId "com.osmium.ykb"
            minSdkVersion 14
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
            multiDexEnabled = true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.loopj.android:android-async-http:1.4.9'
    compile 'com.parse.bolts:bolts-android:1.3.0'
    compile 'com.parse:parse-android:1.12.0'
    compile('com.facebook.fresco:fresco:0.8.1') {
        exclude module: 'bolts-android'
    }
    compile 'com.flaviofaria:kenburnsview:1.0.6'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.bignerdranch.android:expandablerecyclerview:2.0.3'
}

使用“./gradlew app:dependencies”检查时我的依赖项是这样的

_debugApk - ## Internal use, do not manually configure #
+--- com.android.support:multidex:1.0.1
+--- com.android.support:appcompat-v7:23.1.1
|    \--- com.android.support:support-v4:23.1.1
|         \--- com.android.support:support-annotations:23.1.1
+--- com.android.support:support-v4:23.1.1 (*)
+--- com.android.support:design:23.1.1
|    +--- com.android.support:appcompat-v7:23.1.1 (*)
|    +--- com.android.support:recyclerview-v7:23.1.1
|    |    +--- com.android.support:support-annotations:23.1.1
|    |    \--- com.android.support:support-v4:23.1.1 (*)
|    \--- com.android.support:support-v4:23.1.1 (*)
+--- com.android.support:cardview-v7:23.1.1
+--- com.android.support:recyclerview-v7:23.1.1 (*)
+--- com.loopj.android:android-async-http:1.4.9
|    \--- cz.msebera.android:httpclient:4.3.6
+--- com.parse.bolts:bolts-android:1.3.0
|    +--- com.parse.bolts:bolts-tasks:1.3.0
|    \--- com.parse.bolts:bolts-applinks:1.3.0
|         \--- com.parse.bolts:bolts-tasks:1.3.0
+--- com.parse:parse-android:1.12.0
|    \--- com.parse.bolts:bolts-tasks:1.3.0
+--- com.facebook.fresco:fresco:0.8.1
|    +--- com.facebook.fresco:imagepipeline:0.8.1
|    |    +--- com.nineoldandroids:library:2.4.0
|    |    +--- com.facebook.fresco:fbcore:0.8.1
|    |    \--- com.android.support:support-v4:21.0.3 -> 23.1.1 (*)
|    +--- com.facebook.fresco:fbcore:0.8.1
|    \--- com.facebook.fresco:drawee:0.8.1
|         +--- com.facebook.fresco:fbcore:0.8.1
|         \--- com.android.support:support-v4:21.0.3 -> 23.1.1 (*)
+--- com.flaviofaria:kenburnsview:1.0.6
+--- com.google.android.gms:play-services:8.4.0
|    +--- com.google.android.gms:play-services-ads:8.4.0
|    |    \--- com.google.android.gms:play-services-basement:8.4.0
|    |         \--- com.android.support:support-v4:23.0.0 -> 23.1.1 (*)
|    +--- com.google.android.gms:play-services-analytics:8.4.0
|    |    \--- com.google.android.gms:play-services-basement:8.4.0 (*)
|    +--- com.google.android.gms:play-services-appindexing:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0
|    |         \--- com.google.android.gms:play-services-basement:8.4.0 (*)
|    +--- com.google.android.gms:play-services-appinvite:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-appstate:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-auth:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-basement:8.4.0 (*)
|    +--- com.google.android.gms:play-services-cast:8.4.0
|    |    +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    |    \--- com.android.support:mediarouter-v7:23.0.0
|    |         \--- com.android.support:appcompat-v7:23.0.0 -> 23.1.1 (*)
|    +--- com.google.android.gms:play-services-drive:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-fitness:8.4.0
|    |    +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    |    \--- com.google.android.gms:play-services-location:8.4.0
|    |         +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    |         \--- com.google.android.gms:play-services-maps:8.4.0
|    |              \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-games:8.4.0
|    |    +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    |    \--- com.google.android.gms:play-services-drive:8.4.0 (*)
|    +--- com.google.android.gms:play-services-gcm:8.4.0
|    |    +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    |    \--- com.google.android.gms:play-services-measurement:8.4.0
|    |         \--- com.google.android.gms:play-services-basement:8.4.0 (*)
|    +--- com.google.android.gms:play-services-identity:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-location:8.4.0 (*)
|    +--- com.google.android.gms:play-services-maps:8.4.0 (*)
|    +--- com.google.android.gms:play-services-measurement:8.4.0 (*)
|    +--- com.google.android.gms:play-services-nearby:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-panorama:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-plus:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-safetynet:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-vision:8.4.0
|    |    \--- com.google.android.gms:play-services-base:8.4.0 (*)
|    +--- com.google.android.gms:play-services-wallet:8.4.0
|    |    +--- com.google.android.gms:play-services-base:8.4.0 (*)
|    |    +--- com.google.android.gms:play-services-identity:8.4.0 (*)
|    |    \--- com.google.android.gms:play-services-maps:8.4.0 (*)
|    \--- com.google.android.gms:play-services-wearable:8.4.0
|         \--- com.google.android.gms:play-services-base:8.4.0 (*)
+--- com.android.support:multidex:1.0.0 -> 1.0.1
\--- com.bignerdranch.android:expandablerecyclerview:2.0.3
     \--- com.android.support:recyclerview-v7:23.0.1 -> 23.1.1 (*) 

最佳答案

你应该排除bolts-taks而不是bolts-android,试试这个:

compile ('com.facebook.fresco:fresco:0.8.1'){
     exclude group: 'com.parse.bolts', module: 'bolts-tasks';
}

更新:

然后也许尝试从解析库中排除bolts-android并编译整个fresco库,如下所示:

compile ('com.parse:parse-android:1.11.0'){
     exclude group: 'com.parse.bolts', module: 'bolts-android';
}

关于android - 如何使用 com.facebook.fresco 和 com.parse :parse-android without confilicting each other?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34626886/

相关文章:

android-studio - 如何在 Android Studio 中查看 NDK 的原始 Gradle 构建日志?

android - 我的文件内容被某种奇怪的符号所取代

ios - Cloud Code on Parse 中计算票数的函数

java - 重新打开android时解析崩溃

Java android,从图库获取图像并将其显示在屏幕上(错误)

android - PageView 中的 RecyclerView 未显示列表

java - Android Studio应用程序中Gradle构建中的重复类

安卓:谷歌语音识别服务器

Android Studio CMake/Ninja 未用于构建 NDK 项目

ios - 通过连接表解析查找