Транзитные зависимости не разрешены для aar-библиотеки с использованием gradle

Я исследовал некоторое время и, вероятно, видел наиболее популярные ответы здесь, связанные с aar и транзитивными зависимостями, но почему-то мне пока не ясно, как это сделать.

Так:

У меня есть андроидная библиотека с заданной конфигурацией gradle:

apply plugin: 'android-library' apply plugin: 'android-maven' version = "1.0.0" group = "com.somepackage" buildscript { repositories { mavenCentral() mavenLocal() } dependencies { classpath 'com.github.dcendents:android-maven-plugin:1.0' } } android { compileSdkVersion 19 buildToolsVersion '19.0.3' defaultConfig { minSdkVersion 10 } } repositories { maven { url 'http://www.bugsense.com/gradle/' } } dependencies { provided 'com.google.android.gms:play-services:+' provided 'com.android.support:appcompat-v7:+' compile 'com.google.code.gson:gson:2.2.4' compile 'com.bugsense.trace:bugsense:3.6' compile 'commons-net:commons-net:3.3' } 

Затем я развертываю его на локальном gradle install maven с gradle install . POM-файл развернутой библиотеки выглядит следующим образом:

   4.0.0 com.sprezzat app 1.0.0 aar   com.bugsense.trace bugsense 3.6 compile   commons-net commons-net 3.3 compile   com.google.code.gson gson 2.2.4 compile    

И, наконец, конфигурацию gradleиента моего приложения для Android, использующего вышеуказанную библиотеку в качестве зависимости:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' } } apply plugin: 'android' repositories { mavenCentral() mavenLocal() } android { compileSdkVersion 15 buildToolsVersion "19.0.2" defaultConfig { minSdkVersion 10 targetSdkVersion 18 } } dependencies { compile 'com.google.android.gms:play-services:+' compile 'com.android.support:appcompat-v7:+' compile 'com.somepackage:LIBRARY_NAME:[email protected]' } 

И после развертывания приложения по телефону я получаю NoClassDefFoundError для classов, принадлежащих к компиляционным зависимостям моей андроидной библиотеки.

Проверка зависимостей приложений Android от использования gradle dependencies :

 apk - Classpath packaged with the compiled main classes. +--- com.google.android.gms:play-services:+ -> 4.3.23 | \--- com.android.support:support-v4:19.0.1 -> 19.1.0 +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- com.somepackage:LIBRARY_NAME:1.0.0 

Согласно приведенному выше дереву, все транзитивные зависимости не обнаружены. Где проблема и как это должно быть сделано правильно?

Я решил свою проблему, установив transitive атрибут для моей зависимости aar:

 compile ('com.somepackage:LIBRARY_NAME:[email protected]'){ transitive=true } 

вы не должны использовать «@aar», если использование «@» становится « Обозначением только артефакта », если вы хотите использовать «@» и хотите иметь транзитивную зависимость, вы должны добавить «transitive = true»,

Попробуйте это, если вы используете aar локально:

 compile(project(:your-library-name)) { transitive=true } 
  • java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
  • в чем разница между i ++ и ++ i in for loop (Java)?
  • Calendar.getInstance (TimeZone.getTimeZone («UTC»)) не возвращает время UTC
  • Как загрузить ресурс из каталога WEB-INF веб-архива
  • Java: сумма двух целых чисел печатается как конкатенация двух
  • Преобразование base64 в изображение в Java
  • Android - предотrotation перезагрузки WebView при повороте
  • Бесконечная прокрутка Image ViewPager
  • Как преобразовать массив байтов в строку и наоборот?
  • Отладчик Android Studio выделяет неправильные строки
  • как преобразовать цвет rgb в int в java
  • Давайте будем гением компьютера.