Android Studio中的依赖项(来自Eclipse)多个Dex文件
我正在将我所有的Android项目迁移到Android Studio中,因为使用Eclipse有点麻烦 我有几个Android库项目,它们为我的应用程序项目提供功能 想象一下: 支原体 MyClientUtils使用MyCompanyUtils MyClientApp1使用MyClientUtils MyClientApp2使用MyClientUtils “MyCompanyUtils”包含Google GSON库,因为我的所有项目都需要这个库。我的一个应用程序使用了第三方库,它在自己的jar中包含了googlegson库 这在Eclipse中很好,因为我所要做的就是取消选中“导出Android私有库”,并避免所有“多个Dex文件定义”错误。我在Android Studio中看不到这样的选项 我环顾了安卓Studio中关于多个Dex错误的所有其他问题,但这些问题似乎都来自于控制项目中所有库的人。我不。MyCompanyUtils需要GSON,我需要在应用程序项目中使用此库Android Studio中的依赖项(来自Eclipse)多个Dex文件,android,eclipse,android-studio,Android,Eclipse,Android Studio,我正在将我所有的Android项目迁移到Android Studio中,因为使用Eclipse有点麻烦 我有几个Android库项目,它们为我的应用程序项目提供功能 想象一下: 支原体 MyClientUtils使用MyCompanyUtils MyClientApp1使用MyClientUtils MyClientApp2使用MyClientUtils “MyCompanyUtils”包含Google GSON库,因为我的所有项目都需要这个库。我的一个应用程序使用了第三方库,它在自己的jar中
如何防止这些库冲突?如果一个父项目使用多个库项目,则需要以不存在循环依赖关系的方式组织它们 因此,在您的情况下,您希望将其结构如下: MyCompanyUtils->GSON MyClientUtils->MyCompanyUtils MyClientApp1->MyClientUtils MyClientApp2->MyClientUtils
在这种结构下,当从MyClientUtils继承GSON库时,MyClientApp1将只包含一次 好的,所以我想做的是使用“提供的”依赖项标记,而不是“编译”标记 如果我在“MyCompanyUtils”中使用提供的标记,特别是针对GSON依赖项,它会告诉MyCompanyUtils,使用MyCompanyUtils的项目之一将包括GSON依赖项本身 想象一下: MyCompanyUtils使用(提供)GSON MyClientUtils使用(编译)MyCompanyUtils MyClientApp1使用(编译)MyClientUtils,(编译)GSON MyClientApp2使用(编译)MyClientUtils,(编译)Skobbler 由于Skobbler库包含GSON,这意味着MyClientApp2不需要手动编译它。因为MyCompanyUtils希望实现它的项目之一能够提供GSON库,所以这很好
我现在还需要包括并编译MyClientApp1的GSON依赖项,这是我以前不需要做的。这也是因为MyCompanyUtils希望实现它的项目将提供该库的编译版本 你两次带同一个班来。检查你的libs文件夹并将其转换为gradle依赖项。我想你误解了我的要求(也许我解释得很糟糕)。我知道我要带两次课。我无法控制这一切。我使用的是第三方库(Skobbler),其中包括GSON库。Skobbler库需要由MyClientApp2使用,但不能由任何其他应用使用。您可以控制此功能。如果您使用的是Gradle,那么您可以包含和排除所需的依赖项。也许我没有正确解释。MyClientApp2->MyClientUtils和Skobbler。MyClientUtils使用GSON。Skobbler使用GSON。我无法控制Skobbler(第三方库)是否使用GSON。MyClientUtils也必须使用GSON。