Ошибка сборки Android Gradle Plugin 3.0

Возникли проблемы при переходе на плагин Android 3.0.

файл build.gradle в корне проекта

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

Android Модуль приложения build.gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        mavenCentral()
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
        classpath testDependencies.spoon
    }
}

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

apply plugin: 'com.android.application'

apply plugin: 'io.fabric'

spoon {
    debug = true
    grantAllPermissions = true
    shard = true
}

android {
    compileSdkVersion 25

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Пытаюсь собрать проект. Я получаю ошибки компиляции.

введите описание изображения здесь

Но после повторного добавления retrolambda проект успешно компилируется и строится. Прочитал раздел "Известные проблемы" и не нашел решения. Я надеюсь, что кто-то испытал это и может помочь.


person Robertas Setkus    schedule 20.12.2017    source источник


Ответы (4)


Если вы столкнулись с ошибкой сборки после обновления плагина, просто выполните поиск эту страницу для вывода ошибок или перейдите в соответствующую тему и следуйте инструкциям по устранению проблемы.

Решение. См. Известные проблемы на странице ссылок.

Например, рассмотрим следующие зависимости пути к классам, включенные в файл build.gradle основного проекта:

buildscript {
    ...
    dependencies {
        classpath "com.android.tools.build:gradle:3.0.1"
        classpath "me.tatarka:gradle-retrolambda:3.7.0"
    }
}

Теперь рассмотрим следующий файл build.gradle для другого проекта, включенного в составную сборку:

buildscript {
    dependencies {
        // Note that the order of plugins differs from that
        // of the main project's build.gradle file. This results
        // in a build error because Gradle registers this as a
        // different classloader.
        classpath "me.tatarka:gradle-retrolambda:3.7.0"
        classpath "com.android.tools.build:gradle:3.0.1"
    }
}
person 5377037    schedule 28.12.2017

Вы установили

apply plugin: 'me.tatarka.retrolambda'

Добавьте подключаемый модуль me.tatarka:gradle-retrolambda в качестве зависимости от вашего build.gradle файл.

buildscript {
   repositories {
      google()
      mavenCentral()
   }

   dependencies {
      classpath "com.android.tools.build:gradle:3.0.1"
      classpath 'me.tatarka:gradle-retrolambda:3.7.0'
   }
}

// Required because retrolambda is on maven central
repositories {
   mavenCentral()
}

Затем добавьте исходную и целевую совместимость в Java 8 и примените новый подключаемый модуль в файле app/build.gradle.

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda' // Add this 

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.0"

    defaultConfig {
        applicationId " "
        minSdkVersion //
        targetSdkVersion //
        versionCode //
        versionName //
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

К вашему сведению

Если вы используете подключаемый модуль Android для Gradle 3.0.0 or higher, ваш проект автоматически использует версию инструментов сборки по умолчанию, указанную в подключаемом модуле. Чтобы использовать другую версию инструментов сборки, укажите ее с помощью buildToolsVersion в вашем модуле build.gradle следующим образом:

/**
   * buildToolsVersion specifies the version of the SDK build tools, command-line
   * utilities, and compiler that Gradle should use to build your app. You need to
   * download the build tools using the SDK Manager.
   *
   * If you're using Android plugin 3.0.0 or higher, this property is optional—
   * the plugin uses a recommended version of the build tools by default.
   */
    android {

        compileSdkVersion 26
        buildToolsVersion "26.0.2"
    }

Вы должны upgrade использовать свой buildToolsVersion версия.

android { 
    compileSdkVersion 27 
    buildToolsVersion "27.0.0" 

Затем Clean-Rebuild-Restart-Run.

Читать

person IntelliJ Amiya    schedule 28.12.2017

Убедитесь, что ваша версия BuildToolsVersion не ниже 26.

новая студия Android 3.0 после требуемой минимальной версии buildToolsVersion 26.0.0 обновите эту версию в модуле gradle в приложении.

android {
    compileSdkVersion 25
    buildToolsVersion "26.0.3"
}

Если вы видите ошибку buildtool not found, вам необходимо установить этот инструмент сборки.

person Jigar Patel    schedule 28.12.2017
comment
Не забудьте обновить/изменить версию зависимостей appCompat Library. - person Jigar Patel; 28.12.2017
comment
версия инструментов сборки не является обязательной для плагина gradle 3.0, но да, я убедился и не помог. - person Robertas Setkus; 28.12.2017

Убедитесь, что эти строки в файле Gradle уровня приложения (модуля)

buildToolsVersion

defaultConfig для конфигурации приложения

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }

}
person Mallikarjuna    schedule 28.12.2017
comment
Извините, но плагин Android gradle 3.0 не поддерживает версию инструментов сборки ниже 26.0.2. - person Robertas Setkus; 28.12.2017