Android 多索引文件定义Lcom/google/gdata/util/common/base/Escaper

Android 多索引文件定义Lcom/google/gdata/util/common/base/Escaper,android,gradle,uservoice,Android,Gradle,Uservoice,Multi-dex文件定义Lcom/google/gdata/util/common/base/Escaper 我被上述错误所困扰。在我将依赖项添加到UserVoice SDK后出现错误 compile 'com.uservoice:uservoice-android-sdk:+' 由于我添加了这个依赖项,我无法运行我的Android项目 我读过关于jarjar命令可能会解决这个问题的文章。但是由于依赖性是.aar库,我不知道可能的解决方案是什么 非常感谢您的帮助 其他从属关系列表: com

Multi-dex文件定义Lcom/google/gdata/util/common/base/Escaper

我被上述错误所困扰。在我将依赖项添加到UserVoice SDK后出现错误

compile 'com.uservoice:uservoice-android-sdk:+'
由于我添加了这个依赖项,我无法运行我的Android项目

我读过关于jarjar命令可能会解决这个问题的文章。但是由于依赖性是.aar库,我不知道可能的解决方案是什么

非常感谢您的帮助

其他从属关系列表:

 compile('com.crashlytics.sdk.android:crashlytics:2.1.0@aar') {
        transitive = true;
    }
    compile('com.twitter.sdk.android:twitter:1.1.0@aar') {
        transitive = true;
    }
    compile 'com.android.support:support-v4:21.0.0'
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.google.android.gms:play-services-wearable:+'
    compile 'com.github.manuelpeinado.fadingactionbar:fadingactionbar-abc:3.1.2'
    compile 'com.squareup.retrofit:retrofit:1.7.1'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.okhttp:okhttp:2.0.0'
    compile 'com.jakewharton:butterknife:5.1.2'
    compile 'com.squareup.picasso:picasso:2.3.4'
    compile 'com.melnykov:floatingactionbutton:1.0.5'
    compile 'com.balysv.materialmenu:material-menu-abc:1.+'
    compile 'de.keyboardsurfer.android.widget:crouton:1.8.5@aar'
    compile 'com.facebook.android:facebook-android-sdk:3.20.0'
    compile 'com.joanzapata.android:android-iconify:1.0.8'
    compile 'com.squareup:otto:1.3.5'
    compile 'com.android.support:recyclerview-v7:21.+'
    compile 'com.android.support:cardview-v7:21.+'

Gradle depdencies pastebin:

您遇到的问题是由于您有两个依赖项,其中包括
转义器
类。这些最有可能是依赖项的依赖项,所以不清楚哪个包含该类。您可以确保
com.uservoice:uservoice android sdk:+
包含类
Escaper
,这与发生错误时一样


可以通过从编译依赖项中排除依赖项来解决此问题。查看并向下滚动到它谈到的“排除可传递依赖项”的位置。需要注意的一点是,依赖项可能是不同的版本,但包含相同的类。您应该确认这两个库将使用相同版本的
Escaper
类。

如何确定哪个依赖项正在使用Escaper?您可以使用命令“gradlew dependencies”列出项目上的所有依赖项。从该输出中,您可以找到一个需要排除的依赖项。这不会列出确切的类,只是列出整个依赖项。您通常可以在谷歌上搜索完全限定的类名,并找出它是哪个包的一部分。如果我不得不猜测的话,我会说这可能是番石榴的一部分。我已经运行了depencies命令,但我无法确定问题所在,也许你可以看看?检查问题中的pastebin。你说得对,越狱者是番石榴的一部分。但我的依赖性都不依赖番石榴。我不在我的应用程序中使用它,但是你可以一直使用类型搜索。。。我知道在Eclipse中它是Ctrl+Shift+T,我认为在Android Studio中它是Ctrl+N。在Eclipse中,它还显示了jar源代码,以防重复。。。不过,我不确定安卓工作室