android - 如何将 Guava 添加到我的 Android Studio 项目中?

标签 android gradle android-studio guava android-gradle-plugin

首先,我知道这个问题的存在 - How do I add a library project to Android Studio? - 不幸的是,它对我没有帮助。

我的目标很简单。我想使用 Android Studio IDE (0.2.11) 和 Guava libraries 编写一个 Android 应用程序在我的代码中。

我不知道 Gradle,我才开始使用 Android Studio,我的 Visual Studio/C# 背景让我很笨,对此我深表歉意(在那个米老鼠世界里,你通常只添加一个库引用然后关闭你去)。

我会用截图记录我的步骤。我主要遵循 this answer 中给出的建议.

我在我的项目文件夹下创建了一个 libraries 文件夹。

enter image description here

我将 Guava 存储库克隆到其中。

enter image description here

文件成功出现。

enter image description here

我去了Project Structure并选择了Import Module

enter image description here

enter image description here

我选择了从现有来源创建模块并同意所有默认选项。

我将我的 settings.gradle 文件更新为 include ':libraries:guava', ':Test':

enter image description here

还有我的 build.gradle 文件和 compile project(":libraries:guava"):

enter image description here

但每当我尝试重建项目时,我得到的只是:

Error: Gradle: A problem occurred configuring project ':Test'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.

我确实尝试在 guava 文件夹中放置如下 build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

(正如 aforementioned answer 所说)。

我已经在谷歌上下搜索以找到 Guava 的“正确”build.gradle

https://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild - 也没有帮助我。

我确实尝试了无数的东西,我不会在这里描述,因为它们相当随意 - 我尝试添加一个模块依赖项,我尝试在 Gradle 设置中打开 Use auto-import

我知道这不是解决问题的方法,我保证我会认真阅读 Gradle 的 User Guide从 1 到 5.4.2 到 7.3,但我不敢相信这真的是实现像仅向项目中添加库这样不起眼的东西的先决条件?为什么没有默认的 build.gradle 文件,如果有必要,可以从它开始摆弄各种东西?

真正的问题 - 我如何创建一个可以在 Android 设备上构建、实际运行的应用程序(在 Android Studio 中),并且在此之上允许我使用 Guava 以便我可以排序不写 50 行代码的值映射? :)

对不起,我的问题语气很啰嗦,我知道这里的操练,这只是我发泄沮丧的方式。

从解决类似问题的问题和答案获得的投票数来看,我确信我不是唯一一个会从更多说明中受益的人。我会立即开始赏金,但规则禁止我。

最佳答案

如果您只需要使用稳定的、已发布的 Guava 库版本,那么导入它非常容易。

只需转到要使用该库的模块的 build.gradle 文件(即 GuavaTestProject/GuavaTest/build.gradle),然后在

repositories {
    mavenCentral()
}

添加一个 Maven 依赖项:

dependencies {
    compile group: 'com.google.guava', name: 'guava', version: '15.0'
}

如果需要,重新构建您的项目,仅此而已(现在使用 Android Studio 0.2.13 创建的新项目进行了测试)。

如果您确实需要包含 Guava 库的源代码并自己将其编译为 Gradle 构建的模块,这是一个完全不同的问题,因为 Guava 是使用 Maven 构建的,因此您需要从 Maven 迁移 Guava 构建系统到 Gradle,我认为这对于你的目标来说非常复杂。

如果你只是需要浏览源代码或在调试时查看它,我会做的是:

  • 在单独的文件夹中下载 Guava 源代码:

    git clone https://code.google.com/p/guava-libraries/
    git checkout v15.0
    
  • 当 Android Studio 找不到源时,点击“附加源”并指向这个替代位置。

我认为如果您不需要实际修改和编译 Guava 源代码,这是最简单的解决方案。

关于android - 如何将 Guava 添加到我的 Android Studio 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19234698/

相关文章:

android - 如何在Android Studio中为APK构建获取正确的gradle.startParameter.taskNames

android - 如何在 Android 应用程序中录制声音

jenkins - Gradle发布插件无构建任务

android - 使用 proguard 规则排除文件

Gradle :Could not create service of type FileHasher

android - java.lang.BootstrapMethodError:初始化Retrofit时,调用站点#4 Bootstrap 方法发生异常

java - Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错

android - 在 Android 中更改选项卡时更改菜单

android - 从不扩展 Activity/服务的类访问应用程序上下文

android - theme.appcompat.light 的默认文本颜色是什么?