如何将库项目添加到Android Studio并使用它?(有些人要求不生效)

时间:2013-05-18 08:56:48

标签: android intellij-idea android-studio

如何将一个库项目添加到Android Studio并使用它?(有些问题不会生效) 我尝试在How do I add a library project to Android Studio?How to import relative project with the Android Studio(not jar)找到答案。 但它不起作用。它还说“检索项目的父项时出错:找不到与给定名称'Theme.Sherlock.Light'匹配的资源。”等

我的sdk工具rev是22。

6 个答案:

答案 0 :(得分:22)

我将告诉你如何使用地图样本。

假设您已在Android Studio中导入地图示例,并创建了相应的地图模块。

<强> 1。创建一个android库模块

您需要为GMS创建一个额外的库模块,其中包含地图样本从Google API中编译地图模块所需的所有类。

图书馆项目位于:

$ANDROID_SDK/extras/google/google_play_services/libproject/google-play-services_lib

为此,请转到File - &gt; Import module并选择上述位置或图书馆项目的位置。

然后在从现有来源创建模块从外部模型导入模块之间使用正确的选项。就我而言,它来自现有的来源。

Android Studio检测到src / res目录,到目前为止还不错。

它还会检测库目录,这将为您节省手动导入您在lib /中的任何jar(在我的情况下与google-play-services.jar一样)。

[编辑:实际上它只会节省一半的时间,因为它会创建库但不会在模块依赖项中链接它们]

<强> 2。更新主模块依赖项 - 库模块

现在,棘手的部分是您只创建了模块,而不是作为依赖项链接到您的项目。

请执行此操作,转到File - &gt; Project structure - &gt; Modules

在我的案例中选择您的主模块地图,然后转到右侧的dependencies标签。点击+3. Module dependency

选择主模块所依赖的模块,然后单击“确定”。

第3。更新主模块依赖项 - Jars

现在由于无法解释的原因, maps 模块中的活动仍无法找到API类。我还必须在Module配置上手动添加google-play-services.jar依赖项(如2.,但选择 Library 而不是 Module dependency );

这一点肯定能用gradle自动化,但我还没有调查过。使用新IDE时,使用的工具越少,跟踪配置错误就越容易。我建议一次只添加一个工具:)

答案 1 :(得分:7)

以下步骤适用于Android Studio 1.3.1

mylib1属于独立项目。

在我的项目中需要mylib1

1)编辑settings.gradle文件

include ':app'
include ':mylib1' ##New line
project(':mylib1').projectDir = new File('../../android_lib_repo/mylib1/app/') ##New line

其中 ../../ android_lib_repo / mylib1 是项目目录

其中 ../../ android_lib_repo / mylib1 / app / 是模块目录

2)编辑build.gradle文件

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.bouncycastle:bcprov-jdk16:1.46'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.android.support:support-v4:21.0.3'
    compile project(':mylib1') ##New line
}

答案 2 :(得分:2)

在项目中导入'library'模块后(根据我目前的理解,你的工作区是项目,项目是intellij / Android studio中的模块),

  1. 转到File -> Project structure -> Modulesselect the project and hit F4.-> Modules
  2. 选择“库”模块(在中间列),然后单击“依赖项”选项卡(在最右侧的列中)
  3. 点击模块名称前的复选框(导出)。 (检查)
  4. 现在,选择“您的”模块并单击左侧窗格中的+号并选择“3. Module Dependencies ...”,选择“库”项目并单击“确定”。
  5. 立即编译您的模块。
  6. 如果您仍然发现项目中的错误说无法从“库”项目中找到类,那么请确保在“库”模块依赖项中检查模块前面的“导出”复选框。希望有所帮助:)

答案 3 :(得分:1)

对于任何可能只是发现这一点的人。如果需要访问库项目的资源(与ABS一样),请确保将库项目/模块添加为“模块依赖项”而不是“库”。

答案 4 :(得分:1)

如果您使用在Studio中创建的项目或从ADT导出到Gradle的项目,则需要编辑build.gradle以更改依赖项。 “项目结构”对话框中的UI仅影响IDE中的依赖项,但将使用不具有依赖项设置的Gradle。

编辑build.gradle将使Studio重新加载它,更新两个地方的依赖项。

有关依赖项和多模块设置的更多信息(如果您还要将模块添加为依赖项),请阅读http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup

答案 5 :(得分:1)

不建议通过GUI编辑库依赖项,因为它不会将这些更改写入build.gradle文件。所以你的项目不会从命令行构建。 我们应该直接编辑build.gradle文件,如下所示。

例如,给出以下结构:

MyProject的/

  • 应用程序/
  • 库/
    • LIB1 /
    • LIB2 /

我们可以识别3个项目。 Gradle将使用以下名称引用它们:

  1. :应用
  2. :库:LIB1
  3. :库:LIB2
  4. :app项目可能依赖于库,这是通过声明以下依赖项来完成的:

    dependencies {
        compile project(':libraries:lib1')
    }