这是我之前提出的问题的后续:在GitHub上的示例项目中找不到“com.android.tools.build:gradle:3.2.1.” (Could not find com.android.tools.build:gradle:3.2.1. in a sample project from github)。
我正在尝试编译此处提供的项目:https://github.com/dakatso/SpeexExample。
为了消除 gradle 同步错误,我必须首先更改项目级别的 gradle.build 和 gradle-wrapper.properties 文件。所做的更改如链接问题及其答案所示 (Could not find com.android.tools.build:gradle:3.2.1. in a sample project from github)。
但是,在 /library 和 /sample 文件夹中的 app 级别的 build.gradle 文件中,我仍然遇到错误。 我尝试做一些修改,但出现一个错误,提示“未指定 compileSdkVersion”,尽管已在文件中指定。 我认为该项目是使用旧版本的 Android Studio 和 Gradle 创建的,这些版本对最新版本的 Android Studio (4.0) 不适用。以下是 app 级别的 build.gradle 文件(显示原始代码以及我的修改):
/library 的 build.gradle:
这些文件应该被修改以使得该项目能够编译。
我正在尝试编译此处提供的项目:https://github.com/dakatso/SpeexExample。
为了消除 gradle 同步错误,我必须首先更改项目级别的 gradle.build 和 gradle-wrapper.properties 文件。所做的更改如链接问题及其答案所示 (Could not find com.android.tools.build:gradle:3.2.1. in a sample project from github)。
但是,在 /library 和 /sample 文件夹中的 app 级别的 build.gradle 文件中,我仍然遇到错误。 我尝试做一些修改,但出现一个错误,提示“未指定 compileSdkVersion”,尽管已在文件中指定。 我认为该项目是使用旧版本的 Android Studio 和 Gradle 创建的,这些版本对最新版本的 Android Studio (4.0) 不适用。以下是 app 级别的 build.gradle 文件(显示原始代码以及我的修改):
/library 的 build.gradle:
// apply plugin: 'com.android.model.library' // ORIGINAL
apply plugin: 'com.android.library'
model {
android {
// compileSdkVersion = 24 // ORIGINAL
compileSdkVersion 26
buildToolsVersion = '24.0.0'
defaultConfig {
// ORIGINAL
// minSdkVersion.apiLevel = 9
// targetSdkVersion.apiLevel = 24
minSdkVersion 9
targetSdkVersion 26
}
sources {
main {
jni {
exportedHeaders {
srcDir 'src/main/jni/include'
}
}
}
}
ndk {
moduleName = 'speex'
platformVersion = '9'
toolchain = 'clang'
CFlags.add('-DFIXED_POINT')
CFlags.add('-DUSE_KISS_FFT')
CFlags.add('-DEXPORT=\"\"')
}
}
}
/sample 的 build.gradle:
// apply plugin: 'com.android.model.application' // ORIGINAL
apply plugin: 'com.android.application'
model {
android {
// compileSdkVersion = 24 // ORIGINAL
compileSdkVersion 26
buildToolsVersion = '24.0.0'
defaultConfig {
applicationId 'com.speex.speexsample'
// ORIGINAL
// minSdkVersion.apiLevel = 9
// targetSdkVersion.apiLevel = 24
minSdkVersion 9
targetSdkVersion 26
versionCode = 1
versionName = '1.0.0'
}
productFlavors {
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
create("all")
}
}
}
dependencies {
// ORIGINAL
// compile fileTree(include: ['*.jar'], dir: 'libs')
// compile 'com.android.support:appcompat-v7:24.0.0'
// compile 'com.android.support:design:24.0.0'
// compile project(':library')
implementation fileTree(include: ['*.jar'], dir: 'libs')
// implementation 'com.android.support:appcompat-v7:24.0.0' // ORIGINAL
implementation 'com.android.support:appcompat-v7:26.0.0'
// implementation 'com.android.support:design:24.0.0' // ORIGINAL
implementation 'com.android.support:design:26.0.0'
implementation project(':library')
}
这些文件应该被修改以使得该项目能够编译。
gradle-experimental
。移除model
块。只使用:android { ... }
- Gabriele Mariottimodel
会导致 gradle 同步时出现以下错误:在类型为 com.android.build.gradle.LibraryExtension 的 'android' 扩展中,找不到方法 sources() 的参数 [build_ckwpzmz3kdwwxj3uf21uqur86$_run_closure1$_closure3@2c887c80]。 - user13267