2015-07-30 4 views
1

Я разрабатываю библиотеку Android. Проблема в том, что библиотека сама зависит от многих других зависимостей градиентов, таких как Google Analytics и Volley.Android: лучший способ добавить библиотечную зависимость в Android-библиотеку

Я не знаю, может ли это привести к конфликту в будущем, когда разработчик использует эту библиотеку (как зависимость градиента) вместе с другими зависимостями.

Так безопасно просто добавить зависимость от компиляции gradle, как обычно для любого проекта Android?

Я не уверен относительно подхода, который следует принять для разработки библиотеки.

Когда библиотека будет разработана, я буду размещать ее на Jcenter/Maven.

Я сделал свое исследование bur не нашел ничего полезного. Думаю, это распространенная проблема.

Пример создания файла

apply plugin: 'android-library' 

buildscript { 
    repositories { 
     maven { 
      url "http://maven.snplow.com/releases" 
     } 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3' 
    } 
} 
repositories { 
    jcenter() 
    maven { 
     url "http://maven.snplow.com/releases" 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.0' 
    compile('com.github.nkzawa:socket.io-client:0.5.+') { 
     exclude group: 'org.json', module: 'json' 
    } 
    compile project(':VolleyLib') 
    compile 'com.google.android.gms:play-services-analytics:7.5.0' 
    compile files('libs/FlurryAnalytics-5.5.0.jar') 
    compile files('libs/sentry-1.1.4.jar') 
    compile 'com.snowplowanalytics:snowplow-android-tracker-classic:0.5.0' 
} 

android { 
    compileSdkVersion 22 
    buildToolsVersion "23.0.0 rc2" 

    defaultConfig { 
     minSdkVersion 10 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
+1

Добавить зависимость от проекта библиотеки. Отправьте пример конфигурации 'build.gradle'. –

+0

@ JaredBurrows Добавлено –

ответ

1

пользователи библиотеки могут импортировать пакет с транзитивной = True, а затем использовать gradle dependency management and conflict resolution rules для разрешения любых конфликтов. В загрузочную документы должны их использовать следующий компиляции заявление в build.gradle

compile ('foo-bar:[email protected]') { transitive = true } 

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

Смежные вопросы