web-dev-qa-db-fra.com

Erreur de génération Gradle: cause: org.gradle.api.internal.ExtensibleDynamicObject

J'essaie d'importer ' https://code.google.com/p/Android-serialport-api/ ' dans Android Studio. Comme ce projet implique ndk, j'ai suivi les instructions pour construire NDK à partir du lien suivant: http://tools.Android.com/tech-docs/new-build-system/gradle-experimental

Mais après la construction, j'obtiens cette erreur: Gradle Project refresh a échoué.
Erreur: cause: org.gradle.api.internal.ExtensibleDynamicObject 

EDIT: J'ai la version 2.5 gradle installée Voici mon 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'
     }
   }

  }

}
15
Susheel

Pouvez-vous essayer le changement

compileSdkVersion 22
buildToolsVersion "22.0.1"

à

compileSdkVersion = 22
buildToolsVersion = "22.0.1"

et

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

à

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

J'ai la même erreur et ça marche pour moi.

30
user2535400

Malheureusement, la mise en œuvre de l'aperçu NDK pour prendre en charge le développement de code natif dans Android Studio est une cible mobile. Même si vous utilisez une version plus ancienne, developers.Android.com a déclaré, "pris en charge" la combinaison du plugin expérimental Gradle pour Android (de tools.Android.com) et de la version de Gradle (de gradle.org), bonne chance pour que la construction fonctionne. . Au lieu de cela, utilisez toujours la dernière combinaison publiée avec la dernière syntaxe de langage du module build.gradle indiquée, selon developers.Android.com.

Dans votre cas, vous mélangez l’utilisation d’opérateurs d’affectation, "=" et "+ =". En fonction de la combinaison prise en charge du plugin Gradle et de la version Gradle que vous utilisez, vous pouvez utiliser les opérateurs d’assignation partout dans le fichier build.gradle du module ou nulle part. Vous devez être cohérent, tout ou rien. Pour "+ =", utilisez plutôt la méthode ".add (...)".

Et rappelez-vous, le langage de script Gradle est compilé pour l'exécution Java. Ainsi, lorsque vous voyez une erreur de construction qui ressemble à une erreur Java, c'est probablement le script Gradle qui pose problème.

1
BoiseBaked

J'ai eu cette erreur quand j'ai eu un paramètre pas correctement déplacé de l'ancienne syntaxe Gradle à nouveau

(avait cFlags "..." plutôt que CFlags += "...")

Regardez par exemple à http://tools.Android.com/tech-docs/new-build-system/gradle-experimental

0
quertzuiopü