无法为参数org.gradle.api.Project找到方法android()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法为参数org.gradle.api.Project找到方法android()相关的知识,希望对你有一定的参考价值。
得到一个bug,当我尝试在工作室中编译我的项目时,我已经搜索了很多而没有真正的解决方案
错误:(17,0)无法在类型为org.gradle.api.Project的根项目'booksStudioDir'中找到参数[build_a7zf1o8ge4ow4uolz6kqzw5ov $ _run_closure2 @ 19201053]的方法android()。
这是我的构建/ gradle文件的示例
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 21
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.peade.time"
minSdkVersion 10
targetSdkVersion 13
}
signingConfigs {
release {
storeFile file("/home/bestman/Desktop/mkey/key")
storePassword "androidkeys"
keyAlias "peade"
keyPassword "yes1234"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
}
}
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
compile 'com.edmodo:cropper:1.0.1'
compile 'com.android.support:support-v4:21.0.3'
compile 'com.itextpdf:itextpdf:5.5.6'
// compile files('libs/commons-lang3-3.3.2.jar')
compile files('libs/dropbox-android-sdk-1.6.1.jar')
// compile files('libs/httpmime-4.0.3.jar')
compile files('libs/json_simple-1.1.jar')
compile files('libs/picasso-2.5.2.jar')
compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
transitive = true;
}
compile project(':owncloud')
}
答案
有两个build.gradle文件。一个是顶级持有者,另一个是模块持有者。
以下是一个例子。
顶级build.gradle: https://github.com/nickbutcher/plaid/blob/master/build.gradle
module的build.gradle: https://github.com/nickbutcher/plaid/blob/master/app/build.gradle
android
块应该在module的build.gradle中。我想你必须在顶级build.gradle中定义android
块,这会导致错误。
另一答案
buildscript {
ext.versions = [
'compileSdk' : 27,
'targetSdk' : 27,
'buildTools' : '27.0.3',
'butterknife' : '8.8.1',
'glide' : '4.6.1',
'kotlin' : '1.2.21',
'retrofit' : '2.3.0',
'supportLibrary': '27.0.2'
]
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0-alpha01'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
}
}
以上是关于无法为参数org.gradle.api.Project找到方法android()的主要内容,如果未能解决你的问题,请参考以下文章
无法使用类型为“()”的参数列表为类型“Int”调用初始化程序
如何解决错误:无法调用类型为 `......` 的参数列表类型为 `...` 的初始化程序?