我正在尝试将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'
}
}
}
}
当我的参数未正确从旧的 gradle 语法移动到新语法时,我收到此错误
(had cFlags " ... "
而不是< code>CFlags = " ... ")
例如,请访问http://tools . Android . com/tech-docs/new-build-system/grad le-experimental
不幸的是,在AndroidStudio中支持本机代码开发的NDK预览实现是一个移动目标。即使您使用的是较旧的developers.android。com表示,“支持”实验性Android Gradle插件(来自tools.Android.com)和Gradle版本(来自Gradle.org)的组合,祝构建成功。相反,始终使用最新发布的组合和最新指示的模块版本。根据developers.android.com的说法,分级语言语法。
在您的例子中,您混合使用赋值操作符,“=”和 " =". 根据您使用的gradle插件和gradle版本的支持组合,它要么在模块build.gradle文件中的任何地方使用赋值操作符,要么不使用任何地方——您必须保持一致,要么全部一致,要么什么都不使用。对于“=”,请使用方法“. add(…)”。
请记住,gradle脚本语言是编译到Java运行时的,所以当您看到一个看起来像Java错误的构建错误时,问题很可能出在gradle脚本上。
你能尝试改变吗
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')
}
我也有同样的错误,这个对我有效。