无法为参数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”调用初始化程序

如何解决错误:无法调用类型为 `......` 的参数列表类型为 `...` 的初始化程序?

无法为数组参数扩展约束协议

Python 的单元测试无法为 Discord 机器人测试传递参数“缺少 1 个必需的位置参数:'ctx'”?

无法使用类型为“(字符串)”的参数列表调用“执行选择器”

无法为 QT 连接函数提供参数