【问题标题】:Compiling with the source of another module in Android Studio使用 Android Studio 中另一个模块的源代码进行编译
【发布时间】:2013-11-22 21:20:43
【问题描述】:

在 Android Studio 中,我有一个 Android 项目,其中包含一个名为 go 的模块,使用 Gradle 将其设置为 Android 库。它包含一个名为com.nwoods.go 的Java 包。为了这个 Stack Overflow 提交,它包含一个名为 FooBar 的类

在同一个 Android 项目中,我有一个名为 ugurdemo1 的应用程序模块,它在包 com.nwoods.ugurdemo1 中有一个 MainActivity 类。

Android Studio 我已将模块ugurdemo1 的项目结构修改为在编译时依赖库go。在ugurdemo1 的MainActivity 中,我想引用和使用来自go 的类FooBar。为此,我在该类前面加上了一个典型的 Java 导入语句:

进口 com.nwoods.go.FooBar; ... @覆盖 受保护的无效 onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FooBar myFooBarObject = null;

在彻底重建我的源代码后,Android Studio 仍然无法解析 FooBar 的符号。通过在 Dependency 对话框中编辑编译时间设置解决了 Stack Overflow 上的类似问题,但同样不起作用。如果有任何帮助,我目前正在运行Android Studio IO Preview (0.3.6)

【问题讨论】:

  • 面临同样的问题,但我的项目通过 Gradle 构建得很好,所以这是一个在 0.8.4 中仍未解决的 AS 问题。

标签: android intellij-idea android-studio


【解决方案1】:

听起来你做对了,但为了确认,这里有一个项目结构依赖项面板的屏幕截图,可让你在 Gradle 中设置模块依赖项:

该模块已经依赖于通过 Maven 样式导入检索到的两个库,并且它还依赖于 Foo 模块。要添加新的依赖项,请单击底部的 + 按钮并选择依赖项类型(如图所示)。

您还可以手动编辑 Gradle 构建文件。在我的示例中,“two”模块的目录中有一个build.gradle 文件。它有一个 dependencies 块,如下所示:

dependencies {
    compile 'com.android.support:support-v4:+'
    compile 'com.android.support:appcompat-v7:+'
    compile project(':Foo')
}

您可以添加更多compile project 行以添加新的模块依赖项;使用冒号分隔的语法来提供模块相对于项目根目录的位置。

如果您手动编辑 build.gradle 文件,请在完成后单击工具栏中的“使用 Gradle 文件同步项目”按钮,让 Android Studio 重新读取文件并获取您的更改。

【讨论】:

    【解决方案2】:

    问题可能不是您的项目,而是 Android Studio 本身的一个错误,这里正在跟踪:https://code.google.com/p/android/issues/detail?id=65915

    “修复”是从除根项目目录之外的所有模块中删除 settings.gradle。

    例如,在我的情况下,我的项目结构如下所示:

    build.gradle
    settings.gradle
    library_module:
       build.gradle
       settings.gradle
          library:
             build.gradle
             settings.gradle
    android_app:
       settings.gradle
       build.gradle
    

    删除后结构如下:

    build.gradle
    settings.gradle
    library_module:
       build.gradle
          library:
             build.gradle
    android_app:
       build.gradle
    

    干杯

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2018-01-28
    • 1970-01-01
    • 2021-03-05
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多