2013-08-12 1 views
2

나는 gradle로 빌드 된 안드로이드 프로젝트에서 두 가지 제품 맛이 있습니다.내 모든 Gradle 제품의 맛은 왜 향상됩니까?

맛 중 하나는 추가 종속성을 선언하지만 실제로 두 가지 맛 모두에서 종속성이 사용됩니다. 두 가지 맛은 두 가지가 있습니다. 왜냐하면 하나의 맛은 첫 번째 맛에만 선언 된 라이브러리에 의존하기 때문에 그렇지 않아야합니다.

맛 중 하나가 결국 appb에서 admob SDK를 가져서는 안되는 프로 버전이기 때문에 두 가지 맛이 모두 admob SDK를 추가한다고 두려워합니다.

나는 다음과 같은 build.gradle 파일이 있습니다

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

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 10 
     targetSdkVersion 18 
    } 

    productFlavors { 
     Pro { 
      packageName "de.janusz.journeyman.zinsrechner.pro" 
     } 
     Free { 
      dependencies { 
       compile files('src/Free/libs/admob.jar') 
      } 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:18.0.+' 
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 
+0

이 아마도 당신이 fileTree을 컴파일 (디렉토리를 제거 shloud ' libs ', include :'* .jar ') 필수 종속성 만 추가하십시오. – buzeeg

답변

5

올바른 방법은 하나의 제품 맛에 대한 종속성을 추가 할 수 있습니다 :

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

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 10 
     targetSdkVersion 18 
    } 

    productFlavors { 
     pro { 
      packageName "de.janusz.journeyman.zinsrechner.pro" 
     } 
     free { } 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:18.0.+' 
    compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' 
    compile fileTree(dir: 'libs', include: '*.jar') 
    freeCompile files('src/Free/libs/admob.jar') 
} 
관련 문제