Gradle build Ошибка: Причина: org.gradle.api.internal.ExtensibleDynamicObject
Я пытаюсь импортировать 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
EDIT: у меня установлена версия 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'
}
}
}
}
Ответы
Ответ 1
Можете ли вы попробовать изменить
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')
}
У меня такая же ошибка, и это работает для меня.
Ответ 2
К сожалению, реализация предварительного просмотра NDK для поддержки разработки собственного кода в Android Studio является движущей целью. Даже если вы используете более старое, разработчики .android.com заявили, что "поддерживают" комбинацию экспериментального плагина Android Gradle (от tools.android.com) и Gradle версии (от gradle.org), удачи в том, чтобы заставить сборку работать. Вместо этого всегда используйте последнюю выпущенную комбинацию с последним указанным синтаксисом языка build.gradle, в соответствии с сайтом developers.android.com.
В вашем случае ваше смешение использования операторов присваивания, "=" и "+ =". В зависимости от поддерживаемой комбинации плагина Gradle и версии Gradle, которую вы используете, она либо использует операторы присваивания всюду в файле build.gradle модуля, либо нигде - вы должны быть последовательными, все или ничего. Для "+ =" используйте вместо этого метод ".add(...)".
И помните, что язык сценариев Gradle скомпилирован в среду выполнения Java, поэтому, когда вы видите ошибку сборки, которая похожа на ошибку Java, это скрипт Gradle, который, вероятно, является проблемой.
Ответ 3
Я получил эту ошибку, когда у меня был неправильный переход от старого синтаксиса gradle к новому
(имел cFlags "..."
, а не CFlags += "..."
)
Посмотрите, например. на http://tools.android.com/tech-docs/new-build-system/gradle-experimental