2013-11-25 4 views
1

Eclipse와 Ant에서 나온 Android Studio/Gradle 빌드 시스템에 대해 알기 위해 노력하고 있습니다. 특히 build.gradle 파일의 dependencies 블록이 어떻게 작동하는지 이해할 수 없습니다. 내 프로젝트에서Android Gradle 의존성 - Maven?

Project Structure

내가 안드로이드 지원 라이브러리 (V4)와 JXL 스프레드 시트 라이브러리를 모두 사용하고 있습니다 :

나의 현재 프로젝트는 다음과 같은 구조를 가지고 있습니다. 내 build.gradle (하위 모듈 내부의 일이 아닌 루트 레벨 1)은 현재 다음과 같습니다

번째 마지막 줄에
buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.6.+' 
    } 
} 
apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.1.1" 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 19 
    } 
    buildTypes { 
     release { 
      runProguard true 
      proguardFile getDefaultProguardFile('proguard-android-optimize.txt') 
     } 
    } 
    productFlavors { 
     defaultFlavor { 
      proguardFile 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'net.sourceforge.jexcelapi:jxl:2.6.+' 
    compile 'com.android.support:support-v4:13.0.+' 

    //compile fileTree(dir: 'libs', include: '*.jar') 
} 

, 당신은 android-support-v4.jarjxl.jar의 로컬 복사본을 사용하여 내가 해봤 볼 수 있습니다 . 나는 또한 안드로이드 지원 및 JXL 라이브러리를 찾을 수 없다는 내 빌드가 실패, I 로컬 jar 파일을 사용하려고 할 때마다, 라인

그러나
compile files('libs/android-support-v4.jar') 
compile files('libs/jxl.jar') 

를 사용하여 시도했습니다. 나는 당신이 이것처럼 local .jars를 간단하게 사용할 수 있다고 말하는 게시물을 많이 보았지만 이것을 작동시킬 수는 없다. 가능한 경우 Maven을 사용할 수 없을 때 오프라인으로 작업 할 수 있도록 로컬에 저장된 .jar 파일을 사용할 수 있기를 원합니다.

누구든지 로컬 .jar 파일을 사용하면 왜 작동하지 않는지 알 수 있습니까?

편집 : Android Studio IDE를 다시 시작하고 로컬 jar 종속성 줄을 추가 한 다음 프로젝트를 정리하고 다시 빌드 해 보았습니다.

답변

2

src/main 대신 모듈 루트에 위치해야하기 때문에 libs 디렉토리를 찾을 수 없습니다. build.gradle의 경로는 모듈 루트에있는 build.gradle 파일의 위치와 관련이 있습니다.

Android 지원 라이브러리의 경우 jar 파일을 포함하는 대신 Maven 종속성 (예 : compile 'com.android.support:support-v4:13.0.+')을 사용하는 것이 좋습니다. 지원 라이브러리를 사용하면 Android Gradle 플러그인이 실제로 SDK 대신 네트워크로 이동하지 않고 SDK에서 찾습니다. SDK 관리자를 통해 지원 저장소를 설치해야합니다. 이것은 실제로 약간 혼란스럽고 문서화가 잘되어 있지 않기 때문에 많은 사용자가 방문하게됩니다. 그러나 JAR을 포함하는 대신이 방법으로이 방법에 액세스하면 빌드 시스템은 중복 된 복사본을 포함시키지 않고 다른 라이브러리 프로젝트를 포함 시키면 오류가 발생하는 문제에 대해 더 똑똑해질 수 있습니다.

+0

감사합니다. libs 디렉토리를 (하위) 모듈의 루트에 위치 시키려고 이동 시켰습니다. 이제 .jars를 찾습니다. – aaronsnoswell