Gradle build错误:原因:org.gradle.api.internal.ExtensibleDynamicObject

时间:2015-08-08 19:02:49

标签: android gradle android-ndk

我正在尝试将“https://code.google.com/p/android-serialport-api/”导入Android Studio。由于这个项目涉及ndk,我按照说明从以下链接构建NDK:http://tools.android.com/tech-docs/new-build-system/gradle-experimental

但是在构建之后,我收到了这个错误: Gradle项目刷新失败
错误:原因:org.gradle.api.internal.ExtensibleDynamicObject

编辑:我安装了2.5 gradle版本 这是我的build.gradle

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

model {

  android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig.with {
    applicationId = "android_serialport_api.sample"
    minSdkVersion.apiLevel =  17
    targetSdkVersion.apiLevel = 22

    android.ndk {
        moduleName = "serial_port"
    }

    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles  += file('proguard-rules.txt')
        }
    }

    android.productFlavors {

        create("all")
    }

}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
     }
   }

  }

}

3 个答案:

答案 0 :(得分:30)

您可以尝试更改

compileSdkVersion 22
buildToolsVersion "22.0.1"

compileSdkVersion = 22
buildToolsVersion = "22.0.1"

release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}

release {
    minifyEnabled = false
    proguardFiles  += file('proguard-rules.txt')
}

我有同样的错误,这对我有用。

答案 1 :(得分:1)

不幸的是,支持Android Studio中本机代码开发的NDK预览实现是一个不断变化的目标。即使您使用较旧的,developer.android.com也表示,"支持"结合实验性的Android Gradle插件(来自tools.android.com)和Gradle版本(来自gradle.org),祝你好运。相反,根据developers.android.com,始终使用最新发布的组合和最新指定的模块build.gradle语言语法。

在你的情况下,你混合使用赋值运算符," ="和" + ="。根据您使用的gradle插件和gradle版本支持的组合,它可以在模块build.gradle文件中的任何地方使用赋值运算符,也可以在任何地方使用 - 您必须保持一致,全部或全部。对于" + ="使用方法" .add(...)"代替。

请记住,gradle脚本语言被编译到Java运行时,因此当您看到看起来像Java错误的构建错误时,它可能是问题的gradle脚本。

答案 2 :(得分:0)

当我将参数未正确地从旧gradle语法移动到新的

时,我收到此错误

(有cFlags "..."而不是CFlags += "..."

看看,例如在http://tools.android.com/tech-docs/new-build-system/gradle-experimental