9

У меня есть проблема, когда я хочу, чтобы скомпилировать мое приложение:Неожиданное исключение верхнего уровня в андроид-поддержки-v4.jar

Неожиданное исключение TOP-LEVEL: java.lang.IllegalArgumentException: уже added`

Это похоже на ошибку в 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/библиотеки/AppCompat/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; 

Можете ли вы мне помочь?

ответ

8

Я нашел проблему:

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') 
} 
+18

Привет, можете ли вы подробно остановиться на проблеме? И как вы решили эту проблему? – yasith

2

Возможно, у вас есть этот файл jar, который дважды включается в ваш проект. Попробуйте перейти в «Файл -> Структура проекта» и проверьте, есть ли у вас 2 идентичных модуля или библиотеки.

2

Как я вижу из ваших файлов сборки, вы добавили библиотеку поддержки Android в два из ваших модулей. У меня была такая же проблема, и я решил ее удалить из основного модуля, оставив только один для библиотеки. Я не уверен, что это лучшее решение, но оно работает, и град не жалуется.

6

Основная идея в ответ Prcaen является то, что с помощью:

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

внутри зависимость раздел вместо:

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

может решить проблему дублирования. И это так!

Смежные вопросы