Как построить модуль NDK с использованием экспериментального плагина gradle?

Я пытаюсь построить проект с модулем, который использует NDK. Но Gradle build дает ошибку.

Это мой build.gradle (Основной проект)

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' // classpath 'com.android.tools.build:gradle-experimental:0.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } 

Когда я пытаюсь использовать этот градл: 1.5.0 он дает ошибку «Ошибка: (17, 0) Плагин с идентификатором« com.android.model.application »не найден».

С другой стороны, если я использую gradle-experimental: 0.1.0, он дает ошибку «Ошибка: (17, 0) плагин с идентификатором« com.android.application »не найден».

Как я могу решить эту ошибку? У меня есть несколько модулей в моем проекте. Как я могу задать град с удовлетворением всех модулей?

EDITED:

Build.gradle (Основной проект)

 buildscript { repositories { jcenter() } dependencies { // classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.android.tools.build:gradle-experimental:0.4.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } def isReleaseBuild() { return isTag() && !isSnapshot() } def isSnapshot() { return version.contains("SNAPSHOT") } boolean isTravis() { return System.getenv('TRAVIS_BUILD_NUMBER') ? true : false } boolean isTag() { def tag = System.getenv('TRAVIS_TAG') return !(tag == null || tag.isEmpty()) } def buildNumber() { return System.getenv('TRAVIS_BUILD_NUMBER') ?: "0" } 

build.gradle (приложение)

 apply plugin: 'com.android.model.application' repositories { maven { url "https://oss.sonatype.org/content/repositories/snapshots" } maven { url "https://oss.sonatype.org/content/repositories/releases" } maven { url "https://oss.sonatype.org/content/repositories/staging" } } model { android { compileSdkVersion = 22 buildToolsVersion = "22.0.1" defaultConfig.with { applicationId = "com.ToxicBakery.viewpager.transforms" minSdkVersion.apiLevel = 16 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "1.0" } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.lintOptions { checkReleaseBuilds = false } } dependencies { compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.android.support:cardview-v7:22.0.0' compile 'info.hoang8f:fbutton:1.0.5' compile project(':contextMenu') compile project(':library') compile project(':library2') compile project(':titanic') compile files('libs/universal-image-loader-1.9.4.jar') compile project(':staggeredview') compile project(':min3d') } 

build.gradle (ContextMenu)

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 21 buildToolsVersion = "21.1.2" defaultConfig.with { minSdkVersion.apiLevel = 11 targetSdkVersion.apiLevel = 21 } } android.lintOptions { checkReleaseBuilds = false } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.nineoldandroids:library:2.4.0' } 

build.gradle (библиотека)

 apply plugin: 'com.android.model.library' apply plugin: 'signing' model { android { compileSdkVersion = 22 buildToolsVersion = "22.0.1" defaultConfig.with { minSdkVersion.apiLevel = 13 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "1.0" } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.lintOptions { checkReleaseBuilds = false } } dependencies { compile 'com.android.support:support-v13:22.1.1' } apply from: '../maven_push.gradle' 

build.gradle (library2)

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 22 buildToolsVersion = "22.0.1" defaultConfig.with { minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "1.0" } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.lintOptions { checkReleaseBuilds = false } } dependencies { } 

build.gradle (min3d)

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 15 buildToolsVersion = "21.0.2" defaultConfig.with { minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "1.0" } } android.buildTypes { debug { } release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.productFlavors { } android.lintOptions { checkReleaseBuilds = false } } dependencies { compile 'com.android.support:appcompat-v7:20.0.0' compile fileTree(dir: 'libs', include: ['*.jar', '*.aar']) } 

build.gradle (staggerdview)

 apply plugin: 'com.android.model.library' dependencies { compile 'com.android.support:support-v4:19.1.+' } model { android { compileSdkVersion = 22 buildToolsVersion = "22.0.1" defaultConfig.with { minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "1.0" } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.lintOptions { checkReleaseBuilds = false } } 

build.gradle (титаническая)

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 22 buildToolsVersion = '22.0.1' defaultConfig.with { minSdkVersion.apiLevel = 11 targetSdkVersion.apiLevel = 19 versionCode = 1 versionName = "1.0" } } android.buildTypes{ release { minifyEnabled = false proguardFiles += file('proguard-rules.txt') } } android.lintOptions { checkReleaseBuilds = false } } dependencies { compile 'com.android.support:appcompat-v7:20.+' compile fileTree(dir: 'libs', include: ['*.jar']) } 

Вы должны использовать экспериментальный плагин для цели NDK:

Таким образом, ваш build.gradle (Основной проект) будет выглядеть так:

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

И build.gradle (приложение) будет выглядеть так:

 apply plugin: 'com.android.model.application' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig.with { applicationId = "com.sample.codecator" minSdkVersion.apiLevel = 19 targetSdkVersion.apiLevel = 19 } } } 

Если вы используете какой-либо библиотечный модуль, то его build.gradle будет выглядеть так:

 apply plugin: 'com.android.model.library' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig.with { minSdkVersion.apiLevel = 19 targetSdkVersion.apiLevel = 19 } } } 

Вы должны удалить из блока android{...} :

 android.buildTypes android.sources android.productFlavors 

Подобно:

 model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig.with { minSdkVersion.apiLevel = 19 targetSdkVersion.apiLevel = 19 } android.buildTypes { release { minifyEnabled = false proguardFiles.add(file("proguard-rules.pro")) } } android.productFlavors { // } android.sources { // } } 

Не забудьте установить ndk.dir=ndk_path в файл local.properties .

ОБНОВИТЬ

Обновите код android.buildTypes во всех ваших файлах:

 android.buildTypes { release { minifyEnabled = false proguardFiles.add(file("proguard-rules.pro")) } }