android-support-v4.jar中出现意外的顶级exception

我想编译我的应用程序时遇到问题:

意外的顶级exception:java.lang.IllegalArgumentException:已经添加了`

这似乎是android-support-v4.jar的错误。

在我的项目中,我有3个库:appcompat,facebook,google_play_services。

我的gradle文件:

  • AppProject / settings.gradle

    include ':libraries:google_play_services', ':libraries:appcompat', ':libraries:facebook', ':app' 
  • AppProject / build.gradle:

     buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } 
  • AppProject /应用/的build.gradle:

     apply plugin: 'android' dependencies { compile project(':libraries:appcompat') compile project(':libraries:facebook') compile project(':libraries:google_play_services') compile files('libs/android-async-http-1.4.3.jar') compile files('libs/gson-2.2.4.jar') compile files('libs/libGoogleAnalyticsV2.jar') compile files('libs/universal-image-loader-1.8.4.jar') compile files('libs/urbanairship-lib-3.0.0.jar') } 
  • AppProject /库/程序兼容性/的build.gradle:

     apply plugin: 'android-library' dependencies { compile files('libs/android-support-v4.jar') compile files('libs/android-support-v7-appcompat.jar') } 
  • AppProject /库/ Facebook的/ buidle.gradle:

     apply plugin: 'android-library' dependencies { compile files('libs/android-support-v4.jar') } 
  • AppProject /库/ google_play_services / buidle.gradle:

     apply plugin: 'android-library' dependencies { compile files('libs/google-play-services.jar') } 

但是当我编译它时,会出现此错误:

 Output: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/NotificationCompatIceCreamSandwich; 

你可以帮我吗?

我发现了问题:

AppProject / settings.gradle

 include ':libraries:facebook', ':app' 

AppProject /库/ Facebook的/的build.gradle

 apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:18.0.0' } 

AppProject /应用/的build.gradle

 apply plugin: 'android' dependencies { compile 'com.android.support:support-v4:18.0.0' compile 'com.android.support:appcompat-v7:18.0.+' compile 'com.google.android.gms:play-services:3.1.36' compile project(':libraries:facebook') compile files('libs/android-async-http-1.4.3.jar') compile files('libs/gson-2.2.4.jar') compile files('libs/libGoogleAnalyticsV2.jar') compile files('libs/universal-image-loader-1.8.4.jar') compile files('libs/urbanairship-lib-3.0.0.jar') } 

Prcaen答案的主要思想是使用:

compile 'com.android.support:support-v4:18.0.0'

内部依赖部分而不是:

compile files('libs/google-play-services.jar')

可以解决重复问题。 确实如此!

您可能在项目中包含了两次jar文件。 尝试转到文件 – >项目结构,并检查是否有2个相同的模块或库。

正如我从您的构建文件中看到的那样,您已将android-support库添加到两个模块中。 我有完全相同的问题并通过从主模块中删除库来解决它,只留下库中的库。 我不确定这是最好的解决方案,但它有效并且gradle不会抱怨。