Android Gradle Плагин 3.0 Ошибка сборки

Опытные проблемы переносятся на Android gradle плагин 3.0.

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

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

Android Application Module 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 добавляется снова, тогда проект компилируется и строится успешно. Прочтите раздел "Известные проблемы" и не нашли исправления. Я надеюсь, что кто-то испытал это и может помочь.

Ответ 1

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

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

Например, рассмотрим следующие зависимости в classpath, включенные в файл 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 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"
    }
}

Ответ 2

Убедитесь, что значение BuildToolsVersion превышает 26

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

android {
    compileSdkVersion 25
    buildToolsVersion "26.0.3"
}

Если вы видите, что ошибка buildtool не найдена, вам нужно установить этот инструмент сборки.

Ответ 3

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

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
    }
}

FYI

Если вы используете 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.

Прочитайте

Ответ 4

Указать эти строки в окне приложения (модуля) gradle file

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
    }

}