Импортировать Facebook SDK в Android Studio 0.5.1

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

Однако вот что я сделал:

1 - Я загрузил facebook sdk

2 - Скопировал SDK в мою папку libs, чтобы проект выглядел следующим образом:

 MyProj
 -app
 --libs
 ---facebook
 ----build.gradle (2)
 --build.gradle (1)
 -settings.gradle

3 - Я изменил settings.gradle:

include ':libs:facebook', ':app'

4 - Я изменил build.gradle (1) на:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }


    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'me.dm7.barcodescanner:zxing:1.0'
    compile 'com.koushikdutta.ion:ion:1.2.4'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'com.squareup.picasso:picasso:2.1.1'
    compile project(':libs:facebook');
}

5 - Последнее редактирование build.gradle (2):

 buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.9.+'
        }
    }

apply plugin: 'android-library'

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

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 19
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}

Теперь при синхронизации я получаю раздражающее предупреждение: не удалось обновить проект Gradle «MyApp»: конфигурация с именем «по умолчанию» не найдена.

И я не могу использовать библиотеку facebook.

Думаю, я что-то не так делаю с файлами gradle. Любые идеи?


person Furedal    schedule 13.03.2014    source источник
comment
Я думаю, это зависит от того, какую версию facebook sdk вы используете. В том, что я скачал, уже был файл Gradle, который выглядел иначе. Тот, который я использовал, я нашел где-то в stackoverflow, но не могу вспомнить, где. У меня это сработало.   -  person Furedal    schedule 01.04.2014


Ответы (4)


Структура каталогов вашего проекта не соответствует используемым вами спецификациям зависимостей; неясно, что находится в вашем settings.gradle. Эта ошибка, которую вы получаете с «Имя конфигурации 'default' not found», ужасно не интуитивно понятна, но это сообщение, которое вы получаете, когда Gradle ищет модуль в определенном каталоге и не находит его. Если у вас есть спецификация зависимости (и settings.gradle include), например :libs:facebook, она будет выглядеть в MyProj / libs / facebook, а не в MyProj / app / libs / facebook, где вы его разместили.

Я бы порекомендовал эту структуру:

MyProj
 -app
 --build.gradle (1)
 -libs
 --facebook
 ---build.gradle (2)
 -settings.gradle

т.е. переместите каталог libs на один уровень вверх, чтобы он находился рядом с каталогом app, а не под ним.

Ваш файл settings.gradle должен быть:

include ':app', ':libs:facebook'

(что, вероятно, вы уже настроили), и зависимость от facebook должна выглядеть так:

compile project(':libs:facebook')

(также нравится, как вы его уже настроили)

person Scott Barta    schedule 13.03.2014
comment
Спасибо, что сработало как шарм! Просто чтобы уточнить, если бы я сохранил структуру, как она была, должен ли я вместо этого добавить проект компиляции (': app: libs: facebook')? - person Furedal; 13.03.2014
comment
Да и ваш include в settings.gradle тоже должен так выглядеть. - person Scott Barta; 13.03.2014
comment
можно включить Facebook SDK в качестве зависимости от Gradle, проверьте этот ответ: stackoverflow.com/a/23746667/1891118 - person Oleksii K.; 20.05.2014
comment
Если предполагается, что facebook находится на том же уровне, что и приложение, почему это: libs: facebook вместо: facebook? Я выполнил эти инструкции, и студия Android жалуется, что не может найти facebook для другого образца facebook ProfilePictureSample на том же уровне, что и app. Предложения? - person HukeLau_DABA; 08.06.2014
comment
Мой текст был правильным, но моя структура каталогов ASCII-art была неправильной. Я починил это. - person Scott Barta; 09.06.2014

На Mac с Android Studio 0.5.8 у меня сработало вот что:

  1. Щелкните проект верхнего уровня и выберите структуру проекта: Step 1

  2. Нажмите +, чтобы добавить еще один модуль Step 2

  3. Нажмите «Импортировать существующий проект» и «Далее» Шаг 3

  4. Выберите каталог facebook из папки SDK и нажмите «Далее» Step 4

  5. Теперь модуль facebook должен отображаться в дополнение к существующему модулю Step 5

  6. Щелкните свой проект, выберите вкладку «Зависимости» и нажмите «+», чтобы добавить зависимость. Шаг 6

  7. Выберите «Зависимость модуля» в качестве типа зависимости. Шаг 7

  8. Выберите только что добавленный модуль Facebook Step 8

  9. Обратите внимание, что он отображается в зависимостях (вашего приложения) Step 9

И все готово!

person Varun Chatterji    schedule 10.05.2014
comment
У меня это, к сожалению, не работает :( На шаге 5, когда я выбираю папку Facebook, она ничего не делает, по-прежнему говорит «Выбрать модули для импорта». Когда я выбираю родительскую папку (facebook-android-sdk-3.14 ), он дает мне все модули для импорта. Затем я выбираю модуль Facebook, нажимаю "Готово", но тогда я получаю только синхронизацию градиента, а модуль нигде не отображается ... Также здесь используется 0.5.8, у вас есть есть идеи, что я делаю не так? - person Thermometer; 20.05.2014
comment
Отличный ответ! Решил нашу проблему. Спасибо! - person NRR; 05.06.2014
comment
Также не забудьте добавить bolts.jas в свою библиотеку! - person Nagaraj Alagusundaram; 03.08.2014
comment
Это лучшее решение - person Markel Mairs; 18.09.2015

Выполните этот шаг, чтобы добавить Facebook SDK в свой проект Android.

1) Open your fresh Android project 
2) Go to File -> Project Structure (or) Alt+Ctrl+Shift+S
3) Go to module click + on second row of window then import module
4) After Facebook SDK imported click + on third row and select Module Dependency select Facebook SDK Apply and press ok 
person Venkat    schedule 13.03.2014
comment
Кажется, это не работает на студии Android 0.5.1. Нет модуля импорта. Однако первый ответ у меня сработал! В любом случае, спасибо. - person Furedal; 13.03.2014
comment
нажмите на импорт существующего проекта, и проект будет импортирован как модуль - person TheModularMind; 23.04.2014

Я сделал версию модуля Facebook с нуля https://github.com/cesarferreira/Facebook-Module

Если вы хотите использовать этот модуль в своих проектах, выполните следующие действия:

  • Вы должны создать новую папку libs в корне вашего проекта.
  • Вы должны скопировать этот проект в папку libs, вы должны вручную скопировать проект, потому что, если вы скопируете его с помощью действия перетаскивания, проект не будет работать, потому что студия Android выдает ошибку
  • Добавьте следующую строку в файл settings.gradle: include ': libs: facebook'
  • Вам следует перестроить проект

ЭТО ОНО!

person cesarferreira    schedule 14.06.2014