简体   繁体   English

使用NDK将插件应用于gradle中

[英]Apply Plugin not working in gradle with NDK

I am trying to add realm to my app. 我正在尝试将域添加到我的应用程序中。 Their documentation states that I need to add class path dependency to the project level build.gradle file. 他们的文档指出我需要将类路径依赖项添加到项目级build.gradle文件中。 And Apply the realm-android plugin to the top application application level build.gradle file. 并将realm-android插件应用于顶级应用程序级别的build.gradle文件。 ( https://realm.io/docs/java/latest/ ) https://realm.io/docs/java/latest/

I did that but I am getting this error: 我做到了但是我收到了这个错误:

Error:(2, 0) 'com.android.application' or 'com.android.library' plugin required.

My project gradle: 我的项目是:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle-experimental:0.7.0-alpha4'
        classpath "io.realm:realm-gradle-plugin:1.1.1"
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

My app gradle uses NDK: 我的应用程序gradle使用NDK:

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


Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def superpowered_sdk_path = properties.getProperty('superpowered.dir')

model {
    repositories {
        libs(PrebuiltLibraries) {
            superpowered { // this is where you declare the "superpowered" static library
                headers.srcDir "${superpowered_sdk_path}"
                binaries.withType(StaticLibraryBinary) { // attaching library files to each platform
                    def platformName = targetPlatform.getName()
                    if (platformName == "armeabi-v7a") {
                        staticLibraryFile = file("${superpowered_sdk_path}/libSuperpoweredAndroidARM.a")
                    } else if (platformName == "arm64-v8a") {
                        staticLibraryFile = file("${superpowered_sdk_path}/libSuperpoweredAndroidARM64.a")
                    } else if (platformName == "x86") {
                        staticLibraryFile = file("${superpowered_sdk_path}/libSuperpoweredAndroidX86.a")
                    } else if (platformName == "x86_64") {
                        staticLibraryFile = file("${superpowered_sdk_path}/libSuperpoweredAndroidX86_64.a")
                    }
                }
            }
        }
    }

    android { // main settings for your application
        compileSdkVersion = 23
        buildToolsVersion = "23.0.2"


        defaultConfig {
            applicationId "com.superpowered.crossexample"
            minSdkVersion.apiLevel = 16 // more than 95% of all active Android devices
            targetSdkVersion.apiLevel = 23
            versionCode 1
            versionName "1.0"
        }
    }

    android.ndk { // your application's native layer parameters
        moduleName = "SuperpoweredExample"
        platformVersion = 16
        stl = "c++_static"
        CFlags.addAll(["-O3", "-fsigned-char"]) // full optimization, char data type is signed
        cppFlags.addAll(["-fsigned-char", "-I${superpowered_sdk_path}".toString()])
        ldLibs.addAll(["log", "android", "OpenSLES"]) // load these libraries: log, android, OpenSL ES (for audio)
        abiFilters.addAll(["armeabi-v7a", "arm64-v8a", "x86", "x86_64"]) // these platforms cover 99% percent of all Android devices
    }

    android.sources.main.jni {
        source {
            srcDir "jni"
            srcDir "${superpowered_sdk_path}/AndroidIO"
        }
        dependencies {
            library "superpowered" linkage "static" // this is where you attach the "superpowered" static library to your app
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.facebook.fresco:fresco:0.12.0'
    compile 'com.android.support:design:23.4.0'
}

It looks like you are using the experimental plugin? 看起来你正在使用实验性插件? apply plugin: 'com.android.model.application' . apply plugin: 'com.android.model.application' Is that correct? 那是对的吗?

Realm currently doesn't work with the experimental plugin. Realm目前无法使用实验插件。 See https://github.com/realm/realm-java/issues/2539 请参阅https://github.com/realm/realm-java/issues/2539

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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