所有 buildscript {} 块必须出现在 Jitpack 脚本中的任何插件 {} 块之前

SID*_*NGH 5 java android build-script gradle jitpack

我正在尝试使用 jitpack 发布我的 android 库。但是得到buildscript {} blocks must appear before any plugins {} blocks error. 我已经提到了这个问题:Getting 'buildscript {}blocksmustearbeforeanyplugins{}blocks'error in jitpack但没有找到任何解决方案。

错误:

FAILURE: Build failed with an exception.

* Where:
Build file '/home/jitpack/build/build.gradle' line: 26

* What went wrong:
Could not compile build file '/home/jitpack/build/build.gradle'.
> startup failed:
  build file '/home/jitpack/build/build.gradle': 26: all buildscript {} blocks must appear before any plugins {} blocks in the script
  
  See https://docs.gradle.org/7.0.2/userguide/plugins.html#sec:plugins_block for information on the plugins {} block
  
   @ line 26, column 1.
     buildscript {
     ^
  
  1 error
Run Code Online (Sandbox Code Playgroud)

这就是我的项目级别 gradle 的样子:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.2"

        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

这就是我的应用程序级别 gradle 的样子:

plugins {
    id 'com.android.application'
    id "com.jfrog.bintray"
}

android {
    compileSdk 30

    defaultConfig {
        applicationId "com.siddydevelops.logutil"
        minSdk 23
        targetSdk 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
 
Run Code Online (Sandbox Code Playgroud)

我的gradle版本是7.0.2。

我很确定这个块导致了错误:(在项目级别 gradle 中)

plugins {
    id "com.jfrog.bintray" version "1.8.4"
}
Run Code Online (Sandbox Code Playgroud)

我无法将其移动到应用程序级别 gradle。

小智 9

我也有同样的问题,我只是改变 build.gradle 项目中的位置,如下所示:

buildscript {
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.1"

    }
}

plugins {
    id 'com.android.application' version '7.1.0' apply false
    id 'com.android.library' version '7.1.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)