Как добавить Guava в проект Android Studio?

В первую очередь, я знаю о существовании этого вопроса - Как добавить проект библиотеки в Android Studio? - и, к сожалению, он не помог я.

Моя цель довольно проста. Я хочу написать приложение для Android с помощью Android Studio IDE (0.2.11) и библиотеки Guava в моем коде.

Я не знаю, Gradle, я только начал использовать Android Studio, и мой фон Visual Studio/С# ошарашил меня, за что я извиняюсь (в этом мире Микки Мауса вы обычно просто добавляете ссылку на библиотеку и вы идете).

Я буду документировать свои шаги со скриншотами. Я в основном следовал рекомендациям, приведенным в этом ответе.

Я создал папку 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

Я выбрал Create module from existing sources и согласился со всеми вариантами по умолчанию.

Я обновил файл 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.

Я попытался поместить build.gradle, как показано ниже в папке guava:

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']
        }
    }
}

(как говорится в вышеупомянутом ответе).

У меня googled вверх и вниз, чтобы найти "правильный" build.gradle для Guava.

https://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild - тоже не помог.

Я пробовал бесчисленные вещи, которые я не буду описывать здесь, поскольку они были довольно случайными - я попытался добавить зависимость от модуля, я попытался включить Use auto-import в Gradle settings и т.д.

Я знаю, что это не способ решения проблем, и я обещаю, что буду усердно читать Gradle Руководство пользователя от 1 до 5.4.2 до 7.3, но я не могу поверить, что это действительно предпосылка для достижения чего-то столь же незаметного, как просто добавление библиотеки в проект? Почему нет файла по умолчанию build.gradle, из которого можно приступать к работе со всеми вещами, если это необходимо?

И реальный вопрос - как создать приложение (в Android Studio), которое строит, на самом деле работает на устройстве Android, а сверху это позволяет мне использовать Guava, чтобы я мог сортировать отображение значений без записи 50 строк кода?:)

Извините за болтливый тон моего вопроса, я знаю, что тренировка здесь, это просто мой способ избавить меня от разочарования.

Судя по тому, сколько голосов было подано за вопросы и ответы, которые занимались подобными проблемами, я уверен, что я не единственный, кто выиграет от некоторых дополнительных инструкций. Я сразу начну щедрость, но правила меня запрещают.

Ответы

Ответ 1

Если вам просто нужно использовать стабильную выпущенную версию библиотек Guava, импортировать ее очень просто.

Просто перейдите в файл build.gradle модуля, где вы хотите использовать библиотеку (i.e 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 и поэтому вам нужно переместить систему сборки Guava от Maven до Gradle, что, по моему мнению, является чрезвычайно сложным для ваших целей.

Если вам просто нужно просмотреть источник или просмотреть его во время отладки, я бы сделал следующее:

  • Загрузите исходный код Guava в отдельной папке:

    git clone https://code.google.com/p/guava-libraries/
    git checkout v15.0
    
  • Когда Android Studio не найдет источники, нажмите "Прикрепить источники" и укажите на это альтернативное местоположение.

Я думаю, что если вам не нужно на самом деле изменять и компилировать исходный код Guava, это самое простое решение.

Ответ 2

В вашем вопросе много информации. Я использую Guava тоже. Но я не помню, чтобы пройти через эту проблему.

Guava доступен на mavencentral. Поэтому добавление guava к вашему проекту должно быть довольно простым. AFAIK, вам не нужно проверять, создавать и добавлять зависимость проекта и т.д.

Смотрите файл gradle для моего приложения ниже.

buildscript {
    repositories {
        mavenCentral()
    }

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

apply plugin: 'android'

repositories {
     mavenCentral()
}

// Dependencies
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar') // jar files under the libs folder.
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' // actionbarsherlock,
    compile 'com.android.support:support-v4:18.0.0' // android support lib
    compile 'com.google.code.gson:gson:2.2.4' // google GSON
    compile 'com.google.guava:guava:14.0.1' // guava 14.0.1
}

Ответ 3

dependencies {
  compile 'com.google.guava:guava:19.0'
}

Источник: https://github.com/google/guava

EDIT: Начиная с версии v22, существует специальная версия guava для Android.

dependencies {
  compile 'com.google.guava:guava:22.0-android'
}

* Спасибо Сэм:)

Ответ 4

В Android Studio 0.3.0 Теперь это работает на Mac. См. Примечания к выпуску для дополнительных опций в добавлении библиотек http://tools.android.com/recent/androidstudio030released


Я работаю над Windows сейчас, и есть два варианта Щелкните правой кнопкой мыши на банке в библиотеках, и у вас есть добавление в библиотеку Или вы можете нажать F4 и перейти к открытию настроек библиотеки, поэтому кажется, что вам не нужно так много работать в Windows, как на Mac


Это то, что я сделал. Пожалуйста, прочитайте до конца, потому что он работает непоследовательно, и если вы не видите сначала синюю стрелку, есть разрешение. Сначала я создал папку libs. Я не думаю, что это необходимо, но это привычка.

enter image description here

Сначала попробуйте перейти к файлу, структуре проекта.

Если вы видите маленькую синюю стрелку в левом верхнем углу, нажмите ее, и вы перейдете на экран, где вы можете добавить библиотеку

enter image description here

Если вам удастся добраться до этого экрана, нажмите знак плюса и добавьте библиотеку. enter image description here

Вы также можете увидеть красную линию внизу, говоря, что Guava не используется с лампочкой. Это заполнение добавляет зависимость от файла сборки Gradle enter image description here

Если вы не видите синюю стрелку

GO вместо этого в файл, другие настройки, структура проекта по умолчанию.

С этого экрана вы можете добавить библиотеку enter image description here

Затем вернитесь к структуре проекта и добавьте его. Дело в том, что оно останется по умолчанию для всех ваших проектов, чтобы вы могли добавлять и удалять его для каждого отдельного проекта через меню структуры проекта. Я не уверен, что это ошибка в Android Studio, потому что вы можете быть заблокированы от добавления ее в отдельный проект без изменения значения по умолчанию.

Ответ 5

не используйте полную библиотеку guava, используйте версию для Android,

dependencies {
    compile 'com.google.guava:guava:23.0-android'
}