Gradle (экспериментальный плагин android) игнорирует зависимость проекта

Я использую Gradle Android Experimental plugin в следующей структуре проекта:

Root Project |-- app |-- my-library 

settings.gradle

 include ':my-library', ':app' 

build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle-experimental:0.2.0' } } allprojects { repositories { jcenter() } } 

Приложение / build.gradle

 apply plugin: 'com.android.model.application' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.0" defaultConfig.with { applicationId = "a.bundle.id" minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 23 versionCode = 1 versionName = "1.0" } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.pro') } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.0' compile project(':my-library') } 

моя библиотека / build.gradle

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 'android-23' buildToolsVersion = '23.0.1' defaultConfig.with { minSdkVersion.apiLevel = 15 } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.ndk { moduleName = "xxx" CFlags += "-I" + "${project.buildDir}".toString() + "/../src/main/jni/libabecs/include" CFlags += "-std=gnu99" } android.sources { main { jni { source { srcDir 'src/main/jni/libxxx/src' } } } } android.productFlavors { create("arm") { ndk.abiFilters += "armeabi" } create("arm7") { ndk.abiFilters += "armeabi-v7a" } create("arm8") { ndk.abiFilters += "arm64-v8a" } create("x86") { ndk.abiFilters += "x86" } create("x86-64") { ndk.abiFilters += "x86_64" } create("mips") { ndk.abiFilters += "mips" } create("mips-64") { ndk.abiFilters += "mips64" } create("all") } } 

Проект библиотеки строится отлично. В Android Studio он не показывает никаких ошибок. Однако, пытаясь построить этот проект с помощью Gradle, он попытается создать проект app и практически проигнорирует зависимость my-library , не получая ошибок в классе рендеринга.

Как это решить?

Solutions Collecting From Web of "Gradle (экспериментальный плагин android) игнорирует зависимость проекта"

По-видимому, это ошибка / функция, не реализованная в плагине сборки.

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

Build.gradle (someappname)

 repositories { flatDir { dirs '../my-library/build/outputs/aar' } } dependencies { compile project(':my-library') compile(name:'my-library-{flavour}', ext:'aar') //the rest } 

Я столкнулся с той же проблемой и, наконец, узнал, что путь к источникам ndk в моем проекте библиотеки был неправильным, и что мне пришлось добавить:

 dependencies { project ":myHybridLib" } 

В android.sources.main.jni основного проекта.

После исправления этих ошибок все компилируется просто отлично.

Измените my_library/build.gradle на что-то вроде этого:

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.1" defaultConfig.with { minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 23 } } android.ndk { moduleName = "FlatBuffersParser" cppFlags.addAll(['-std=c++11', '-fexceptions', '-Wall', '-Wno-literal-suffix']) cppFlags.add("-I${file("src/main/jni/flatbufferslib")}".toString()) ldLibs.addAll(["android", "log"]) stl = "gnustl_shared" } } 

Для получения дополнительной информации о структуре см. Этот проект в github, он использует экспериментальный v0.4.0 в двух Android-модулях:

https://github.com/frogermcs/FlatBuffs

Столкнулся с той же проблемой. Я обойду его, переименовав подмодуль приложения на что-то еще. Таким образом, структура проекта будет

 Корневой проект
 | - Общение
 | - Общение

Settings.gradle :

 Include ': my-library', ': someappname'