android studio에서 facebook sdk 사용하는 방법.

조회수 2759회

링크를 참고하며 따라하는 중인데요. Application을 실행하면 아래와 같은 경고창이 나오네요.

Gradle: module 'facebook' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-Gradle module in one project.

어떻게 해결해야 될까요? 미리 감사드릴게요!

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    Android studio 0.5.5버젼 혹은 이후 버전, Facebook SDK 최근 버전을 사용하고 있다면 제가 아래 적어놓은 방법(이전 버전을 사용할 경우의 방법)보다 훨씬 간단할거에요. 최신 버전을 사용하고 있다면 이대로만 하시면 됩니다.

    1. https://developers.facebook.com/docs/android/ 에서 Facebook SDK를 다운받으세요.
    2. 압축파일 압축을 푸세요.
    3. Android studio 0.5.5 버전 혹은 이후 버전이라면 File 메뉴에서 “Import Module”를 클릭.
    4. wizard에서 source path를 압축이 풀린 압축파일 내의 “facebook” 디렉토리로 설정해주세요.(만약 전체 상위 폴더로 설정하면 library 뿐만 아니라 모든 샘플 어플리케이션을 불러올 것이고 각각을 분리된 module로 인식할 거에요. 작동은 하겠지만 원하시는 방향은 아니겠죠)
    5. Ctrl + Shift + Alt + S 키를 눌러서 project structure를 연 후에 dependencies 탭을 선택합니다. + 버튼을 클릭하시고요 그 다음 Module Dependency를 선택합니다. 새로운 팝업창이 뜨면 :facebook을 선택합니다.
    6. 자 이제 실행해봐도 좋습니다.

    이전 버전의 Android Studio 혹은 Facebook SDK를 사용할 경우의 방법

    이 방법은 Android Studio 0.5.4 버전 혹은 이전 버전에 해당됩니다. 그리고 Facebook에서 Gradle build 파일을 배포하기 이전의 Facebook SDK 버전에 가장 적합합니다. 어떤 버전의 SDK에 어떤 변화가 있었는지는 저도 잘 모릅니다.

    https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/ 페이지에 나와있는 “안드로이드 스튜디오 프로젝트에 SDK를 import” 하는 방법은 Gradle 베이스의 프로젝트를 사용하시는 분들에게는 적합하지 않습니다(질문자님의 프로젝트는 안드로이드 스튜디오의 New Project wizard를 사용해서 만들어졌고 application module을 위한 build.gradle 파일이 존재할 거에요). 그러니 위의 방법 대신 아래 방법을 따라해보세요.

    1. 프로젝트의 메인 디렉토리 밑에 libraries 폴더를 생성합니다. 예를 들어 프로젝트명이 HelloWorldProject 라면, HelloWorldProject/libraries 폴더를 만들어야겠죠.
    2. 이제 SDK 설치로 만들어진 facebook 디렉토리 전부를 libraries 폴더로 복사합니다.
    3. facebook 디렉토리 내 libs 폴더를 삭제합니다. 원하신다면, project.properties, build.xml, .classpath, .project 파일을 삭제해도 좋습니다. 더 이상 사용할 필요가 없을 거에요.
    4. 아래 코드를 입력하셔서 facebook 디렉토리 안에 build.gradle 파일을 생성하십쇼.
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.6.+'
        }
    }
    
    apply plugin: 'android-library'
    
    dependencies {
        compile 'com.android.support:support-v4:+'
    }
    
    android {
        compileSdkVersion 17
        buildToolsVersion "19.0.0"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 16
        }
    
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                res.srcDirs = ['res']
            }
        }
    }
    

    이 글이 작성된 시기와 제시된 방법을 참고하는 시기를 주의하시면서 따라해주시고요. 아마 classpath 'com.android.tools.build:gradle:0.6.+' 이 부분을 새로운 Gradle plugin 버전의 참조값으로 바꿔주셔야 할거에요. 곧 0.7 버전 혹은 이후의 버전이 필요하겠죠. 일단 시도해보시고요, 최신 버전의 Gradle plugin이 필요하다는 에러 메시지가 발생한다면 그 부분을 수정해주세요.

    5. SDK manager에 Android Support Library가 설치되어있는지 확인하세요. 6. 어플리케이션의 메인 디렉토리 내 settings.gradle 파일에 아래 코드를 추가하세요.

    include ':libraries:facebook'
    

    7. 이미 안드로이드 스튜디오 상에서 프로젝트가 열려있다면 툴바에 있는 “Sync Project with Gradle Files” 버튼을 클릭하세요. 그러면 facebook module이 보이실거에요. http://i.stack.imgur.com/l1I84.png

    8. Project Structure dialog을 여시고, 좌측 핸드리스트에서 Modules를 선택하신 다음 해당 어플리케이션의 module을 클릭하고 Dependencies 탭을 클릭. +버튼을 눌러서 새로운 dependency를 추가합니다. http://i.stack.imgur.com/D7OUp.png

    9. “Module dependency”를 선택하시면 선택 가능한 module의 list를 보여주는 dialog가 나올 것인데 “:libraries:facebook”를 선택하세요. http://i.stack.imgur.com/KEHjw.png

    10. 모든 dialog를 완료하셨다면 안드로이드 스튜디오가 자동적으로 프로젝트를 맞춰줄 것이고("Sync Project with Gradle Files"버튼을 다시 누를 필요가 없어요) 새로운 dependency만 선택해주시면 됩니다. 자 이제 실행해봐도 좋습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)