在项目结构中找不到导入模块选项(Android Studio 0.3.4-0.5.2)


67

我真的很困惑和沮丧,因为我只是不明白如何导入我的Android库项目作为我的应用程序项目的依赖项。

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

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

我做错了什么还是什么?

救命!!!


您找到解决方案了吗?
Rahul Upadhyay

还没。正如@JerothKP所建议的,我可能只是重新安装0.3.2版本
shaktiman_droid 2013年

导入模块选项返回Android Studio时,有人听说过吗?
toobsco42


1
@ gian1200不。AndroidStudio 0.5没有Google团队承诺的修复程序。
shaktiman_droid 2014年

Answers:


17

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

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

如果通过“文件”>“新建模块...”命令来创建空白模块,选择适当的纯Java模块或Android模块,并将库文件复制到需要的库目录中,则可能会更容易。走。那将为您处理Gradle文件并设置框架目录结构。


3
谢谢,但是这样做会弄乱我的结构。我没有一个依赖于此库的应用程序,将库移至单个应用程序项目根目录似乎是不合适的。我将等待适当的解决方案,并继续使用当前的IDE。同时,我给该错误加注了星标以获取有关它的更新。
shaktiman_droid

12

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

  1. 在项目根目录下创建一个名为“ libraries”的目录(随心所欲)
  2. 在步骤1中创建的目录下,使用git克隆齐射,命令为“ git clone https://android.googlesource.com/platform/frameworks/volley ”。现在,项目结构如下所示:

    [Project root]
    |- [Your module]
    |- libraries
       |- volley
    
  3. 通过以下方式导入齐射:右键单击项目根目录->打开模块设置->单击左上角的“ +”(新模块)->导入现有项目->选择齐射源目录->下一步在第3步之后,导入齐射,但尚未建立对图书馆项目齐射的依赖。
  4. 设置模块依赖项:右键单击项目根目录->打开模块设置(现在,凌空应该出现在模块列表中)->选择[您的模块]->切换到选项卡“依赖项”->单击左侧的“ +”(添加)右下角->选择“模块依赖性”->在模块列表对话框中选择“:volley”
  5. 现在一切正常,您可以根据需要使用截击

这适用于AS 0.6.0中的facebook和parse SDK。实际上,您可以忽略第1步和第2步...这应该适用于任何模块。
布莱克G

10

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


为此,您需要在库中已有MyLibrary模块。否则,Android Studio应该如何找到您的MyLibrary在哪里?
shaktiman_droid

1
settings.gardle必须具有include ':libraries:MyLibrary'(<project_directory> / libraries / MyLibrary)
弗拉基米尔(Vladimir

这对我不起作用。测试在导入的库中找不到包。我想Injhb是对的,我们必须首先创建新模块。
Bagusflyer 2013年

按照您的建议执行并重新启动IDE后,不会生成* .iml文件。
Bagusflyer

最后,我通过创建一个新模块并将源代码添加到该模块中解决了该问题。
Bagusflyer

2

最终,导入模块功能已进入2014年3月27日发布的Android Studio 0.5.3。

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

我也进行了测试,它在项目结构窗口中。

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


我以某种方式更新到0.5.3,导入模块不存在。我尝试了File-> Import Module,但是它打开了另一个项目窗口。
JR谭

@TanJitRen您要达到什么目的?导入模块使您可以将另一个项目导入到当前项目中,从而可以具有依赖关系。
shaktiman_droid 2014年

我想导入现有模块,但我的0.5.3不包含该功能。看这里,他也面临着同样的问题。stackoverflow.com/questions/22743711/...
JR谭

@TanJitRen我认为该问题与导入项目设置无关。看起来与错误地构建gradle项目有关。正如我在这里提到的,您可以尝试使用Jake Wharton的这个manager-plugin。github.com/JakeWharton/sdk-manager-plugin
shaktiman_droid 2014年

2
我说得太早了。您确实可以立即导入一个模块,但是它似乎是整个模块的副本,而不是链接到项目结构外部的模块。您所做的任何更改对于新副本都是本地的。因此,这实际上只是有点有用。它比根本没有功能要有用,但是如果您想在9月中拥有一个Library,仍然会毫无用处。回购比你的应用程序,等等
AkiAki007

0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.