67

我真的很困惑和沮丧,因为我无法理解如何将我的 android 库项目导入为我的应用程序项目的依赖项。

我试图在网上找到大多数答案,建议转到我的应用程序的项目结构并单击“+”,然后单击“导入模块”

但 Android Studio 0.3.4 - 0.5.2 没有显示任何选项,当我点击“+”时,它只显示新模块的窗口。

我做错了什么还是什么?

帮助!!!

4

5 回答 5

17

在处理基于 Gradle 的项目时,您会遇到这种情况,就像这个一样;即使在 0.3.2 中,这个 Import project 命令也做错了;它似乎可以工作,并且会使编辑器中的语法着色正常工作,但是当您尝试构建和运行您的应用程序时它会失败,并且当您将项目与 Gradle 构建文件重新同步时,您的更改会丢失. 这就是为什么在可以正确重新实现之前将其删除的原因。跟踪它的错误位于https://code.google.com/p/android/issues/detail?id=62122

同时,要将现有库添加为依赖项,您需要在 Gradle 构建文件中手动完成。为此,请移动库,使其目录位于项目根目录下(目前,不支持包括项目根目录之外的模块),编写build.gradle将构建模块的构建文件,并将模块包含在settings.gradle文件中。

如果您通过 File > New Module... 命令创建一个空白模块,根据需要选择纯 Java 模块或 Android 模块,然后将库文件复制到需要的模块目录中,您可能会发现更容易去。这将为您处理 Gradle 文件并设置骨架目录结构。

于 2013-11-18T18:15:10.163 回答
12

对于 android studio 0.5.7,volley 按照以下步骤成功导入为库项目:

  1. 在你的项目根目录下创建一个名为“libraries”的目录(任何你想要的)
  2. 在第一步创建的目录下使用git克隆volley,命令为“git clone https://android.googlesource.com/platform/frameworks/volley ”。现在项目结构如下:

    [Project root]
    |- [Your module]
    |- libraries
       |- volley
    
  3. 导入volley方式:右键项目根目录->打开模块设置->点击左上角的“+”(新建模块)->导入已有项目->选择volley源目录->下一步经过步骤3,导入volley,但尚未建立对库项​​目 volley 的依赖。
  4. 设置模块依赖:右键项目根目录 -> 打开模块设置(现在 volley 应该出现在模块列表中) -> 选择 [你的模块] -> 切换到选项卡“依赖项” -> 点击左侧的“+”(添加)底角 -> 选择“模块依赖” -> 在模块列表对话框中选择“:volley”
  5. 现在一切正常,你可以随意使用 volley
于 2014-05-01T04:46:52.977 回答
10

我有类似的问题。我打开settings.gradle文件并添加库include ':Test', ':libraries:MyLibrary',然后在build.gradle添加行:compile project(':libraries:MyLibrary'). 如果你这样做:右键单击项目 -> 打开模块设置 -> 你的项目 -> 依赖项,你将在build.gradle. 顺便说一句,在此操作之后我重新启动了 Android Studio,然后 IDE 创建了 *.iml 文件。

于 2013-11-11T08:04:00.563 回答
2

最后,导入模块功能已在 2014 年 3 月 27 日发布的 Android Studio 0.5.3 中出现。

看看这里:http ://tools.android.com/recent/androidstudio053released

我也测试过,它在项目结构窗口中。

在模块选项卡中,您现在可以按“+”按钮并导入现有模块或创建新模块。

于 2014-03-28T23:42:48.120 回答
0

使用0.3.6版本时我遇到了同样的问题。最后我决定回到0.3.2。现在它可以工作了。我想 AS 限制了连接的能力,可以说是非同质项目。我有一个(Android/Gradleproject0和一个(Java/Mavenproject1。当尝试将project1作为project0的模块导入时,我失败了,因为我唯一的“选择”是创建一个新模块。当我尝试为Java/Gradle项目导入相同的模块( project1: Java/Maven)时,完全没有问题。

也许原因是项目的Android/Gradle甚至只是Android的性质,但我现在不能确定验证我的假设。

于 2013-11-18T15:52:28.480 回答