Android Studio中的外部项目链接模块

我将我的所有项目从Eclipse迁移到Android Studio(1.0.2,只是昨天下载),但有外部模块的问题。

在Eclipse中,我有这样的工作空间

在这里输入图像说明

所有的活动,片段,模型和类都在“核心”项目中。 核心项目需要一些图书馆的工作(如谷歌播放服务,Facebook或Twitter)而应用程序1,应用程序2,应用程序3等等只是标签应用程序。 这些应用程序不包含任何东西,除了图标,configuration文件,加载图像等

我设法将“Core”应用程序及其所有依赖项作为新项目导入到Android Studio中。 当我构build核心时, 我得到了0个错误和0个警告

在这里输入图像说明

然后,我创build了一个新的项目调用“testing”,并按照从这个问题select的答案链接“核心”项目

如何跨多个项目共享单个库源

testing项目的设置

include ':Test' include '..:..:AppyCore:Core' 

testing项目的构build

 dependencies { compile 'com.android.support:support-v4:+' compile project('..:..:AppyCore:Core') } 

但是,当我重build项目时,我得到了这个错误

 Error:(41, 0) Project with path ':SlidingMenu' could not be found in project '..:..:AppyCore:Core' 

当我双击错误消息时,IDE将显示Core项目的build.gradle,并突出显示文件的依赖项部分,如下所示

在这里输入图像说明

似乎当我尝试构build“testing”项目,它不能find“核心”项目的所有依赖项。 你知道如何解决这个问题吗?

注意

  • 我相信“核心”项目设置已经是正确的,因为我创build了“testing2”应用程序,并将“核心”项目导入同一个根目录,同一个项目。 这工作没有任何问题。 但这不是一个选项,因为我实际上有大约20多个白色标签的应用程序。 如果每个应用都有自己的“核心”,那么逐一更新将会非常困难。
  • 我认为我包含的目录是正确的,否则,我会得到这个错误

    “错误:未find名称为'default'的configuration”。

(我试图故意把错误的目录,并得到这个相同的错误)

Solutions Collecting From Web of "Android Studio中的外部项目链接模块"

您正试图为每个应用程序版本创build一个新项目,并将它们链接到一个通用代码库。 在这种情况下,使用Gradle的“变体”function要好得多。 有了它,每个应用程序都是核心应用程序的“变体”,具有自己的软件包名称,自己的资源文件,甚至自己的src文件。

要做到这一点,你需要:

  1. 修改您的核心应用程序的build.gradle

     android { productFlavors { // default BuildConfig variables all { } app_1 { applicationId 'com.yourcompany.app_1' //package name def variantName='app_1' //name of the variant } app_2 { applicationId 'com.yourcompany.app_2' //package name def variantName='app_2' //name of the variant } } } 
  2. / src中创buildapp_1app_2app_x文件夹,每个文件夹都有自己的AndroidManifest.xml/ src/ res文件夹。

  3. 在Android Studio中更改当前的变体: 在这里输入图像说明

您可以在Android Tools Project Site上find有关构build变体的更多信息。

我可以亲自证实这种方法,因为我已经使用过这样一个单一的Android Studio项目支持构build几十个变体,每个变体都有自己独特的包名称,资源文件和自定义代码,这些代码明显地改变了基础的某些方面应用程序,同时共享一个共同的基本代码。