在抖动包中出现'buildscript {} blocks must appear before any plugins {} blocks'错误



我正在尝试使用jitpack发布我的Android库。但是得到buildscript {} blocks must appear before any plugins {} blocks错误。

FAILURE: Build failed with an exception.
Where:
Build file '/home/jitpack/build/build.gradle' line: 53
* What went wrong:
Could not compile build file '/home/jitpack/build/build.gradle'.
> startup failed:
build file '/home/jitpack/build/build.gradle': 53: all buildscript {} blocks must appear before any plugins {} blocks in the script
See https://docs.gradle.org/4.4/userguide/plugins.html#sec:plugins_block for information on the plugins {} block
@ line 53, column 1.
buildscript {
^
1 error

这是我的项目级 gradle 脚本,

buildscript {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
}
}
plugins {
id "com.jfrog.bintray" version "1.8.3"
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}

我在jitpack上构建项目时遇到了同样的问题。我在build.gradle文件中使用了detekt插件。我认为主要问题是

plugins {
id "com.jfrog.bintray" version "1.8.3"
}

块在gradle.file中的位置 当我移动detekt plugin定义时,问题已修复。

只是在插件顶部或上方添加了依赖项

//add these lines above the plugins 
buildscript {
repositories {
google()
}
dependencies {
def nav_version = "2.5.1"
classpath("androidx.navigation:navigation-safe-args- 
gradle-plugin:$nav_version")
}
}

而不是像这样应用插件:

'com.android.application'.

将它们添加到已经存在的函数中,如下所示:

plugins { id 'com.android.application' id 'kotlin-android' id 'com.google.gms.google-services' }

如果上面提到的build.gradle文件是完整的,那么我相信它不完整。库的 build.gradle 文件应如下所示:

apply plugin: 'com.android.library'
android {

compileSdkVersion 27
defaultConfig {
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:percent:27.1.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-messaging:17.0.0'
}

allprojects {
repositories {
maven { url "https://jitpack.io" }
maven {
url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases'
}
}
}

如果您使用的是google services则在文件末尾也包含以下行:

apply plugin: 'com.google.gms.google-services'

最新更新