我正在将我所有的项目从Eclipse迁移到Android Studio (1.0.2,昨天才下载),但是外部模块有问题。
在Eclipse中,我有这样的工作空间
所有的活动、片段、模型和类都在“核心”项目中。核心项目需要一些库才能工作(如Google Play Service、Facebook或Twitter),而App 1、App 2、App 3等只是标签应用程序。这些应用程序不包含任何东西,除了图标,配置文件,加载图像等。
我设法将“核心”应用程序和所有它的依赖项作为一个新项目导入Android Studio。当我构建内核时,我得到了0个错误和0个警告
然后,我创建了一个名为"Test“的新项目,并通过遵循从这个问题中选择的答案将"Core”项目链接到该项目
How to share a single library source across multiple projects
测试项目的setting.gradle
include ':Test'
include '..:..:AppyCore:Core'
测试项目的build.gradle
dependencies {
compile 'com.android.support:support-v4:+'
compile project('..:..:AppyCore:Core')
}
但是,当我重新构建项目时,我得到了这个错误
Error:(41, 0) Project with path ':SlidingMenu' could not be found in project '..:..:AppyCore:Core'
双击错误消息时,IDE将显示核心项目的build.gradle并突出显示文件的依赖项部分,如下所示
似乎当我尝试构建"Test“项目时,它找不到"Core”项目的所有依赖项。你知道怎么解决这个问题吗?
便笺
"Error:找不到名为'default‘的配置。“
(我故意放错了目录,得到了同样的错误)
发布于 2015-04-11 14:22:30
您正在尝试为每个应用程序版本创建一个新项目,并将它们链接到一个公共代码库。在这种情况下,使用Gradle的“变体”特性要好得多。有了它,每个应用程序都是核心应用程序的“变体”,有自己的包名,有自己的资源文件,甚至有自己的src文件。
为此,您需要:
android { productFlavors { //默认BuildConfig变量all {} app_1 { applicationId 'com.yourcompany.app_1‘//包名称def variantName='app_1’//变量名称} app_2 { applicationId 'com.yourcompany.app_2‘//包名称def variantName='app_2’//变量名称} }
你可以在Android Tools Project Site上找到更多关于构建变体的信息。
我个人可以保证这种方法,因为我已经使用了这种方法,单个Android Studio项目支持构建数十个变体,每个变体都有自己独特的包名、资源文件和自定义代码,这些代码可以显着修改基础应用程序的某些方面,同时共享一个公共的基础代码。
https://stackoverflow.com/questions/28599329
复制相似问题