【问题标题】:Can't find import module option in project structure (Android Studio 0.3.4 - 0.5.2)在项目结构中找不到导入模块选项(Android Studio 0.3.4 - 0.5.2)
【发布时间】:2013-11-22 18:55:33
【问题描述】:

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

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

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

是我做错了什么还是什么?

求救!!!

【问题讨论】:

  • 你找到解决办法了吗?
  • 还没有。正如@JerothKP 所建议的,我可能只是重新安装 0.3.2 版本
  • 有人听说过导入模块选项何时回到 Android Studio 吗?
  • @toobsco42 你可以在code.google.com/p/android/issues/detail?id=62122跟踪问题
  • @gian1200 不。Android Studio 0.5 没有像 Google 团队承诺的那样修复。

标签: android android-studio android-library android-gradle-plugin


【解决方案1】:

在处理基于 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 文件并设置骨架目录结构。

【讨论】:

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

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

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

    [Project root]
    |- [Your module]
    |- libraries
       |- volley
    
  3. 导入volley方式:右键项目根目录->打开模块设置->点击左上角“+”(新建模块)->导入现有项目->选择volley源目录->下一步 第 3 步之后,导入了 volley,但尚未设置对库项目 volley 的依赖。
  4. 设置模块依赖项:右键单击项目根目录 -> 打开模块设置(现在 volley 应该出现在模块列表中) -> 选择 [你的模块] -> 切换到选项卡“依赖项” -> 单击“+”(添加)在左下角 -> 选择“模块依赖” -> 在模块列表对话框中选择“:volley”
  5. 现在一切正常,你可以随意使用截击

【讨论】:

  • 这适用于 facebook 并在 AS 0.6.0 中解析 SDK。事实上,你可以忽略第 1 步和第 2 步……这应该适用于任何模块。
【解决方案3】:

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

【讨论】:

  • 为此,您的库中需要已经有 MyLibrary 模块。没有它,Android Studio 怎么能找到你的 MyLibrary 的位置?
  • settings.gardle 必须有 include ':libraries:MyLibrary' (/libraries/MyLibrary)
  • 这对我不起作用。测试在导入的库中找不到包。我猜 Injhb 是对的,我们必须先创建新模块。
  • 按照您的建议重新启动IDE后没有生成*.iml文件。
  • 我终于通过新建一个模块并将源代码添加到模块中解决了这个问题。
【解决方案4】:

终于在 2014 年 3 月 27 日发布的 Android Studio 0.5.3 中引入了导入模块功能。

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

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

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

【讨论】:

  • 我更新到 0.5.3 不知何故导入模块不存在。我尝试了 File->Import Module,但它打开了另一个项目窗口。
  • @TanJitRen 你想达到什么目的?导入模块让您可以将另一个项目导入到当前项目中,这样您就可以拥有依赖关系。
  • 我想导入现有模块,但我的 0.5.3 不包含该功能。看这里,他也面临同样的问题。 stackoverflow.com/questions/22743711/…
  • @TanJitRen 我认为该问题与导入项目设置无关。它看起来与错误地构建 gradle 项目有关。正如我在那里提到的,您可以尝试使用 Jake Wharton 的这个管理器插件。 github.com/JakeWharton/sdk-manager-plugin
  • 我说得太早了。您现在确实可以导入模块,但它似乎复制了整个模块,而不是链接到项目结构之外的模块。您所做的任何更改都是新副本的本地更改。所以,这真的只是有点用处。它比完全没有能力更有用,但如果你想拥有一个在 sep 中的库,它仍然非常无用。 repo 比你的 App 等等。
【解决方案5】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2014-01-13
    • 1970-01-01
    相关资源
    最近更新 更多