作者:VW旻shi只吃货8453 | 来源:互联网 | 2023-05-21 13:05
我正在将我的所有项目从Eclipse迁移到Android Studio(1.0.2,只是昨天下载)但是有外部模块的问题.
在Eclipse中,我有这样的工作空间
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/b428d8f746fb8d47.webp)
所有活动,片段,模型和类都在"核心"项目中.Core项目需要一些库来运作(例如Google Play服务,Facebook或Twitter),而App 1,App 2,App 3等只是标签应用程序.这些应用程序不包含除图标,配置文件,加载图像等外的任何内容.
我设法将"Core"应用程序及其所有依赖项导入Android Studio作为新项目.当我构建核心时,我得到0个错误和0个警告
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/8343fdbffb0056b5.webp)
然后,我创建新的项目调用"测试"并通过从该问题中选择的答案链接"核心"项目
如何跨多个项目共享单个库源
测试项目的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会显示Core项目的build.gradle并突出显示文件的依赖项部分,如下所示
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/086aec93f5e1e9b2.webp)
似乎当我尝试构建"测试"项目时,它无法找到"核心"项目的所有依赖项.你知道怎么解决这个问题吗?
注意
我相信"核心"项目设置已经是正确的,因为我确实创建了"测试2"应用程序并将"核心"项目导入同一个根目录,同一个项目.它没有任何问题.但这不是一个选项,因为我实际上有大约20多个白标应用程序.如果每个应用程序都拥有自己的"核心",那么逐个更新将非常困难.
我认为我包含的目录是正确的,否则,我会得到这个错误
"错误:找不到名称'default'的配置."
(我试图故意放错目录并得到同样的错误)
1> Kai..:
您正在尝试为每个应用程序版本创建一个新项目,并将它们链接到一个公共代码库.在这种情况下,使用Gradle的"变体"功能要好得多.有了它,每个应用程序都是核心应用程序的"变体",拥有自己的包名,自己的资源文件,甚至是自己的src文件.
为此,您需要:
修改核心应用的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
}
}
}
在/ src中创建app_1,app_2 ... app_x文件夹,每个文件夹都有自己的AndroidManifest.xml,/ src和/ res文件夹.
在Android Studio中更改当前变体:
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/a5d7215df572c386.webp)
您可以在Android工具项目网站上找到有关构建变体的更多信息.
我可以亲自担保这种方法,因为我已经使用过这样一个Android Studio项目支持构建几十个变种,每个变种都有自己独特的包名,资源文件和自定义代码,可以显着修改基础的某些方面应用程序,一直共享一个共同的基本代码.