简体   繁体   中英

preBuild dependency in new experimental Gradle for NDK on Android Studio

Recently i decided to take the new NDK plugin in Android Studio for a ride

The changes needed are explained here

My build.gradle was ported successfully. Today i decided that i need a copy task in order to copy files into my 'asset' folder.

Searching online says that i must use a 'preBuild.dependsOn taskName' line, which i am sure works Ok for normal Gradle, but fails in the new experimental one (With the introduction of the 'model' behaviour)

Now my build.gradle fails.

Error:(25, 0) Could not find property 'preBuild' on root project 'Android'.

I am sure that the task is defined correctly, since the error comes from the preBuild... line

Here is my build.gradle:

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

allprojects {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.model.application'

task copyWebViewAssets(type: Copy){
    from '../Common/WebView'
    into 'src/main/assets'
    include('**/*')
}

preBuild.dependsOn copyWebViewAssets

model {
    compileOptions.with {
        sourceCompatibility=JavaVersion.VERSION_1_7
        targetCompatibility=JavaVersion.VERSION_1_7
    }
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.1"

        defaultConfig.with {
            applicationId = "com.company.product"
            minSdkVersion.apiLevel = 9
            targetSdkVersion.apiLevel = 23
            versionCode = 1
            versionName = "1.0"
        }
    }
    android.ndk {
        moduleName = "native"
    }
    android.buildTypes {
        release {
            minifyEnabled = false
        }
        debug {
            ndk.with {
                debuggable = true
            }
        }
    }
    android.productFlavors {
        // To include all cpu architectures, leaves abiFilters empty
        create("all")
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.1'
}

I would like to address again that this is related to the new experimental Gradle for NDK. I am currently on Android Studio 1.4, using Gradle 2.5.

Thank you for your support

Use compileTask instead of prebuild

it works for me.

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn(changeNamespace)
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM