Используйте библиотеку поддержки в проектах и ​​библиотеке Android (Android Studio) - программирование
Подтвердить что ты не робот

Используйте библиотеку поддержки в проектах и ​​библиотеке Android (Android Studio)

Я использую новую студию Android, я ищу способ использовать библиотеку поддержки из нескольких проектов. В основном у меня есть проект, который использует ActionBarSherlock для этого проекта требуется библиотека поддержки. Поэтому я добавил ссылку, как в этот вопрос.

Теперь у меня проблема с тем, что мой основной проект также использует библиотеку поддержки, поэтому у меня она включает в себя два раза. Если я удалю библиотеку из одного из двух проектов, я получу ошибки, которые некоторые классы, связанные с библиотекой поддержки, неизвестны, что ясно для меня, но если у меня есть ссылка в обоих проектах, я столкнусь с этой ошибкой:

Android Dex: [ProjectName] UNEXPECTED TOP-LEVEL EXCEPTION:
Android Dex: [ProjectName] java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ShareCompat$ShareCompatImplJB;
Android Dex: [ProjectName] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
Android Dex: [ProjectName] at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
Android Dex: [ProjectName] at com.android.dx.command.dexer.Main.processClass(Main.java:490)
Android Dex: [ProjectName] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
...

Любая идея, как это исправить?

4b9b3361

Ответ 1

Я исправил это, перейдя в File > Project Structure... и выбрав Modules, затем перейдите на вкладку Dependencies модуля. Затем рядом с библиотекой я изменил область действия с Compile на Provided.

Это означает, что модуль все еще может использовать его, но он не достигает компиляции, так как я предполагаю, что вы уже используете этот JAR в своем основном проекте.

Надеюсь, это поможет!

Ответ 2

У меня была аналогичная проблема со мной. Выберите actionbarsherlock на вкладке/панели проекта/независимо (слева, чтобы вы могли увидеть дерево проекта). нажмите F4, чтобы открыть настройки модуля.
Убедитесь, что вы не используете одни и те же зависимости дважды в actionbarsherlock и вашем проекте.
Также убедитесь, что вы используете версию библиотеки поддержки, которая находится в Android-студии sdk (android-studio/sdk/extras/android).

Наконец, если вы похожи на меня, убедитесь, что вы случайно не сделали actionbarsherlock зависимым от себя, таким образом, загрузив библиотеку дважды THAT!. > & Л;

Взгляните на эти изображения, демонстрирующие мои настройки модуля: http://imgur.com/a/JupWp Actionbar Sherlockenter image description here

Кроме того, не забудьте убедиться, что libs не скрывает ни одного из них!

Ответ 3

Было ли это проектом Eclipse? Если да, попробуйте войти в Eclipse, очистите проект, выйдите, перестройте в IntelliJ. Я считаю, что это проблема состояния, а не проблема с конфигурацией.

Ответ 4

Вместо импорта библиотеки поддержки android в качестве jar я изменил зависимости библиотек (в моем случае facebook sdk) в файле build.gradle:

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
 }