在android项目和库中使用支持库(Android Studio)

rek*_*ire 16 android actionbarsherlock android-support-library android-studio

我正在使用新的Android Studio,我正在寻找一种方法来使用来自多个项目的支持库.基本上我有一个项目,使用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)
...
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

Dan*_*anO 28

我通过进入File > Project Structure...并选择Modules然后单击模块的Dependencies选项卡来修复此问题.然后在库旁边我将范围从更改CompileProvided.

这意味着模块仍然可以使用它,但它没有达到编译,因为我假设您已经在主项目中使用了该JAR.

希望这可以帮助!

  • 已提供不再是Android Studio 0.4.0中的选项.有没有办法在Gradle文件中指定此行为? (4认同)