Mat*_*toe 10 android build gradle android-gradle-plugin gradle-experimental
我在以下项目结构中使用Gradle Android Experimental插件:
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依赖项,从而使类未找到错误.
怎么解决这个?
显然,这是一个未在构建插件中实现的错误/功能.
我只找到了一个肮脏的解决方法来直接链接生成的aar.
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
}
小智 -3
面临同样的问题。我通过将应用程序子模块重命名为其他名称来解决这个问题。所以项目结构将是
根项目 |-- 某个应用程序名称 |-- 我的图书馆
设置.gradle:
包括 ':my-library', ':someappname'
| 归档时间: | 
 | 
| 查看次数: | 1342 次 | 
| 最近记录: |