I'm using Gradle Android Experimental plugin in the following project structure:
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()
}
}
app/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')
}
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")
}
}
The library project builds perfectly fine. In Android Studio, it doesn't show any error. However, when attempting to build this project with Gradle, it'll only attempt to build the app
project and will practically ignore the my-library
dependency, rendering class not found errors.
How to solve this?