1

我有一个 Eclipse 项目结构,看起来像这样:

MyApplicationProject1
MyApplicationProject2
MyApplicationProject3
MyLibraryProject
MyLibraryProject1
MyLibraryProject2
MyLibraryProject3

每个应用程序项目使用MyLibraryProject,而后者又使用其他三个库项目。

将这些项目导入 Android Studio 时,起初它似乎按预期工作。直到我查看了 Android Studio 项目/模块文件夹。天哪,真是一团糟,我现在得到了一个看起来像这样的文件结构:

MyApplicationProject1
   myApplicationProject1
   myLibraryProject
   myLibraryProject1
   myLibraryProject2
   myLibraryProject3

MyApplicationProject2
   myApplicationProject2
   myLibraryProject
   myLibraryProject1
   myLibraryProject2
   myLibraryProject3

MyApplicationProject3
   myApplicationProject3
   myLibraryProject
   myLibraryProject1
   myLibraryProject2
   myLibraryProject3

换句话说 - 我的 Eclipse 库项目已经为每个应用程序项目重复,这当然是荒谬的。Android Studio 开发人员到底怎么会认为我想要维护我所有库项目的 3 个单独副本?

那么我该如何解决呢?我搜索并找到了一些解决方案,主要是指 Android Studio 导入过程,这让我陷入了困境。我想要的只是能够拥有每个库项目的一份副本并将它们导入我的不同应用程序项目中。

顺便说一句,如果有什么不同,我正在使用 Mac OSx。

4

1 回答 1

1

这就是我最终做的事情:

  1. 我在 Android Studio 中创建了一个新的“虚拟”项目。

  2. 在 Eclipse 中,我从 MyLibraryProject 中删除了对库项目的所有引用,因此它们不会被 Android Studio 导入。

  3. 在虚拟项目中,我将库项目作为模块导入(文件->新建->导入模块)

  4. 我将包含我的新模块的文件夹从项目文件夹移动到我的 Android Studio 项目根文件夹。

  5. 在 Eclipse 中,我从我的应用程序项目中删除了对 MyLibraryProject 的所有引用(在项目属性 -> Android 下),因此它不会被 Android Studio 导入。

  6. 我将 Eclipse 应用程序项目导入 Android Studio(使用 File->New->Import Project)

    我现在有一个看起来像这样的文件夹结构:

 

Android Studio Projects
    MyApplicationProject1
    MyApplicationProject2
    MyApplicationProject3
    MyLibraryProject
    MyLibraryProject1
    MyLibraryProject2
    MyLibraryProject3

 

  1. settings.gradle我在我的应用程序项目中编辑了该文件,如下所示:

 

include ':MyApplicationProject1'

include ':MyLibraryProject'
project(':MyLibraryProject').projectDir = new File(settingsDir, '../MyLibraryProject')

include ':MyLibraryProject1'
project(':MyLibraryProject1').projectDir = new File(settingsDir, '../MyLibraryProject1')

include ':MyLibraryProject2'
project(':MyLibraryProject2').projectDir = new File(settingsDir, '../MyLibraryProject2')

include ':MyLibraryProject3'
project(':MyLibraryProject3').projectDir = new File(settingsDir, '../MyLibraryProject3')

 

  1. 我像这样编辑了build.gradle文件MyLibraryProject

 

dependencies {
    compile project(':MyLibraryProject1')
    compile project(':MyLibraryProject2')
    compile project(':MyLibraryProject3')
}

 

  1. 我编辑了模块build.gradle的文件(不是项目 gradle 文件),如下所示:MyApplicationProject1

 

dependencies {
    compile project(':MyLibraryProject')
}

 

如您所见,我必须将所有库添加到项目settings.gradle文件中。我尝试为 MyLibraryProject 创建一个新settings.gradle文件,并在其中包含其他三个库项目/模块,但这不起作用。不过也没什么大不了的。

这个设置似乎很有魅力,希望它能帮助其他为此苦苦挣扎的人。

于 2016-02-02T22:22:09.970 回答