实验gradle问题:android插件必须应用于项目

Esc*_*ist 4 android build.gradle android-gradle-plugin

我正在尝试使用Android Studio中的NDK运行一些本机代码.我已按照此处显示的步骤 使用实验Gradle,但显然并非一切顺利.我收到此错误:The android or android-library plugin must be applied to the project
这是我的gradle文件:

apply plugin: 'com.android.model.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'io.fabric'

model {
    android {
        compileSdkVersion = 22
        buildToolsVersion = "22.0.1"

        android.ndk {
            moduleName = "test"
        }

        defaultConfig.with {
            applicationId = "com.shaperstudio.dartboard"
            minSdkVersion.apiLevel = 15
            targetSdkVersion.apiLevel = 22
            versionCode = 1
            versionName = "1.0"
        }
    }
    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles += file('proguard-rules.pro')
        }
    }
    packagingOptions {
        exclude = 'META-INF/services/javax.annotation.processing.Processor'
    }
}

    repositories {
        maven {
            url "https://jitpack.io"
        }
        maven { url 'https://maven.fabric.io/public' }
    }

    buildscript {
        repositories {
            jcenter()
            maven { url 'https://maven.fabric.io/public' }
        }
        dependencies {
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:22.2.0'
        compile 'com.android.support:recyclerview-v7:22.2.0'
        compile 'com.android.support:design:22.2.0'
        compile 'com.jakewharton:butterknife:6.1.0'
        compile 'de.greenrobot:eventbus:2.4.0'
        apt 'com.bluelinelabs:logansquare-compiler:1.1.0'
        compile 'com.bluelinelabs:logansquare:1.1.0'
        compile 'com.birbit:android-priority-jobqueue:1.3'
        compile 'com.squareup.picasso:picasso:2.5.2'
        compile 'com.facebook.android:facebook-android-sdk:4.1.0'
        compile 'com.parse.bolts:bolts-android:1.+'
        compile fileTree(dir: 'libs', include: '*.jar')
        compile('com.crashlytics.sdk.android:crashlytics:2.4.0@aar') {
            transitive = true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助,为什么我得到这个错误将不胜感激

小智 3

几周前我就遇到了这个问题。com.neenbedankt.android-apt 插件需要 android 或 android-library 插件。

我给 apt 插件作者写了一封信https://bitbucket.org/hvisser/android-apt

你好!几天前,Google 发布了带有 jni 支持的 android studio 预览版 1.3。为此,他们使用插件 com.android.model.application (类路径“com.android.tools.build:gradle-experimental:0.1.0”)。它与您的插件不兼容。我尝试做自己的fork,但我不擅长插件开发。您打算支持新插件吗?

回答。

短期内不会,因为所需的钩子仍然缺失,而且看起来需要重写,因为很多事情都发生了变化。您应该能够使用实验性插件为 NDK 内容创建一个单独的模块,并使用稳定插件为所有其他 Android 内容创建另一个模块。

我也尝试过制作自己的 android-apt 分支,但我不是 gradle 大师,而且我没有足够的时间。

因此,您应该仅为 NDK 创建单独的模块(例如计算某些内容)。

  • 遇到了同样的问题,但就我而言,使用另一个模块并不是解决方案。所以我为新的实验性 android gradle 插件创建了插件。https://bitbucket.org/pvoid/android-apt-experemental/overview (3认同)