安卓工作室-渐变依赖-如何从"脸书"中排除"螺栓"



错误:任务执行失败":app:transformClassesWithJarMergingForDebug"。

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:螺栓/聚合异常.class

这就是错误的样子。我知道bolts用于我的三个依赖项,com.facebook.fresco:fresco:0.10.0com.parse:parse-android:1.13.1和一个jar ePOS2.jar

我尝试了多种解决方案,从开始

 compile('com.facebook.fresco:fresco:0.10.0') {
         exclude group: 'com.parse.bolts', module: 'bolts-android'
     }

但我还是犯了错误。我还试图从com.parse:parse-android1.13.1中排除一些部分,如本文所示,但后来我得到了丢失类的错误。

我也启用了multidex,如本文所示,但错误仍然存在。

如本文所示,我试图排除com/parse/bolts/AggregateException.class,但仍然出现错误。

最奇怪的是,如果我启用InstantRun,我可以运行应用程序,但当它使用jar中的某个类时会崩溃。

java.lang.UnsisfiedLinkError:com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader

所以,我想是否可以从jar或com.parse:parse-android:1.13.1中排除某个类AggregateException.class

编辑

compile('com.facebook.w壁画:壁画:0.10.0'({排除模块:'螺栓android'}

compile('com.facebook.w壁画:壁画:0.10.0'({排除组:"com.parse.bolts",模块:'螺栓android'}

我试图将boltscom.facebook.fresco:fresco:0.10.0中排除,但无论我做什么,它们仍然会出现:

    +--- com.android.support:multidex:1.0.1                                  
+--- com.android.support:design:23.3.0
|    +--- com.android.support:appcompat-v7:23.3.0
|    |    +--- com.android.support:support-vector-drawable:23.3.0
|    |    |    --- com.android.support:support-v4:23.3.0
|    |    |         --- com.android.support:support-annotations:23.3.0
|    |    +--- com.android.support:animated-vector-drawable:23.3.0
|    |    |    --- com.android.support:support-vector-drawable:23.3.0 (*)
|    |    --- com.android.support:support-v4:23.3.0 (*)
|    +--- com.android.support:support-v4:23.3.0 (*)
|    --- com.android.support:recyclerview-v7:23.3.0
|         +--- com.android.support:support-v4:23.3.0 (*)
|         --- com.android.support:support-annotations:23.3.0
+--- com.makeramen:roundedimageview:2.2.1
+--- com.facebook.fresco:fresco:0.10.0
|    +--- com.facebook.fresco:drawee:0.10.0
|    |    +--- com.android.support:support-v4:23.1.1 -> 23.3.0 (*)
|    |    --- com.facebook.fresco:fbcore:0.10.0
|    +--- com.facebook.fresco:fbcore:0.10.0
|    --- com.facebook.fresco:imagepipeline:0.10.0
|         +--- com.android.support:support-v4:23.1.1 -> 23.3.0 (*)
|         +--- com.nineoldandroids:library:2.4.0
|         +--- com.facebook.fresco:fbcore:0.10.0
|         +--- com.facebook.fresco:imagepipeline-base:0.10.0
|         |    +--- com.android.support:support-v4:23.1.1 -> 23.3.0 (*)
|         |    +--- com.nineoldandroids:library:2.4.0
|         |    +--- com.facebook.fresco:fbcore:0.10.0
|         |    --- com.parse.bolts:bolts-android:1.1.4 !!! HERE
|         --- com.parse.bolts:bolts-android:1.1.4  !!! HERE
+--- com.facebook.fresco:imagepipeline-okhttp:0.7.0
|    +--- com.squareup.okhttp:okhttp:2.3.0
|    |    --- com.squareup.okio:okio:1.3.0
|    +--- com.facebook.fresco:imagepipeline:0.7.0 -> 0.10.0 (*)
|    --- com.facebook.fresco:fbcore:0.7.0 -> 0.10.0
+--- com.parse:parse-android:1.13.1
|    --- com.parse.bolts:bolts-tasks:1.4.0
--- uk.co.chrisjenx:calligraphy:2.2.0
     --- com.android.support:appcompat-v7:23.1.1 -> 23.3.0 (*)

duplicate entry错误通常源于打包程序试图打包同一类的多个不同版本。

您似乎只排除了螺栓库的特定部分。这导致您的构建混合了库的其余部分的两个不同版本,这些部分可能仍然有一些重叠的类。

在我的项目中,我将整个库从每个模块中排除,然后强制使用统一的bolts版本来管理所有模块。

在我的gradle构建中,我从所有依赖于螺栓的模块中排除了螺栓,如下所示:

compile('com.facebook.android:facebook-android-sdk:4.14.1') {
    exclude group: 'com.parse.bolts'
}

然后强制所有模块使用最新的螺栓:

compile 'com.parse.bolts:bolts-android:1.+'

我在生成APK时遇到问题,我使用的是:

    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:cardview-v7:23.3.0'
    compile ('com.sromku:simple-fb:4.1.1')      

然后我将其修改为:

    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:cardview-v7:23.3.0'
    compile ('com.sromku:simple-fb:4.1.1'){
        exclude group: 'com.parse.bolts'
    }

它就像一个CHARM!

相关内容

  • 没有找到相关文章

最新更新