API 'option.getExternalNativeBuildTasks ()' устарел и был заменен на 'option.getExternalNativeBuildProviders () - PullRequest
0 голосов
/ 19 сентября 2018

Использование Android Studio 3.3 Canary 11 с версией плагина gradle 3.3.0-alpha11.Выдает следующую ошибку при попытке синхронизировать gradle

WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been 
replaced with 'variant.getExternalNativeBuildProviders()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration- 
avoidance
Affected Modules: app

Нажатие на ошибку приводит меня к этой строке в файле gradle

applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "${variant.name}-${variant.versionName}.apk"
            }
        }

Что именно мне нужно изменить здесь?

project build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        mavenCentral() // jcenter() works as well because it pulls from Maven Central
        maven { url "https://maven.google.com" }
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-alpha11'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath "io.realm:realm-gradle-plugin:4.1.1"
        classpath 'com.google.gms:google-services:3.2.1'
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://maven.google.com" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

// Define versions in a single place
ext {
    // Sdk and tools
    minSdkVersion = 21
    targetSdkVersion = 27
    compileSdkVersion = 27
    buildToolsVersion = '27.0.3'

    // App dependencies
    supportLibraryVersion = '27.1.1'
    appCompactLibraryVersion = '27.1.1'
    playServicesVersion = '15.0.1'
    firebaseVersionCore = '16.0.1'
    firebaseVersionPerf = '16.0.0'
    firebaseVersionMessaging = '17.1.0'

    //lottie
    lottieVersion = '2.5.0'
}

app build.gradle

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

    dependencies {
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
    buildscript {
        repositories {
            maven { url "https://maven.google.com" }
            maven { url 'https://maven.fabric.io/public' }
            mavenCentral()

        }

        dependencies {
            // These docs use an open ended version so that our plugin
            // can be updated quickly in response to Android tooling updates

            // We recommend changing it to the latest version from our changelog:
            // https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
            classpath 'io.fabric.tools:gradle:'
        }
    }
}
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'
repositories {
    maven { url 'https://maven.fabric.io/public' }
}

apply plugin: 'io.fabric'
apply plugin: 'realm-android'

android {

    realm {
        syncEnabled = false
    }

    dexOptions {
        javaMaxHeapSize "4g"
    }

    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
        applicationId "example.com"
        minSdkVersion rootProject.ext.minSdkVersion
        multiDexEnabled true
        versionCode mVersionCode
        versionName mVersionName
        vectorDrawables.useSupportLibrary = true

    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildTypes {

        applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "${variant.name}-${variant.versionName}.apk"
            }
        }

        release {
            shrinkResources true
            minifyEnabled true
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            lintOptions {
                disable 'MissingTranslation'
            }

            applicationVariants.all { variant ->
                variant.outputs.all {
                    outputFileName = "${variant.name}-${variant.versionName}.apk"
                }
            }

        }
        debug {
            shrinkResources true
            minifyEnabled true
            useProguard true
            debuggable true
            versionNameSuffix '-DEBUG'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'debug-proguard-rules.pro'

            ext.enableCrashlytics = false
            crunchPngs false

        }
    }

    flavorDimensions "default"

    lintOptions {

        checkReleaseBuilds false

    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
    buildToolsVersion '28.0.2'
}

configurations {
    implementation.exclude group: "org.apache.httpcomponents", module: "httpclient"
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation "com.android.support:appcompat-v7:$rootProject.appCompactLibraryVersion"
    implementation "com.android.support:support-compat:$rootProject.supportLibraryVersion"
    implementation "com.android.support:mediarouter-v7:$rootProject.supportLibraryVersion"
    implementation "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
    implementation "com.android.support:design:$rootProject.supportLibraryVersion"


    api 'com.squareup.retrofit2:retrofit:2.4.0'
    api 'com.squareup.okhttp3:okhttp:3.11.0'
    api 'com.squareup.okhttp3:logging-interceptor:3.10.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.daimajia.easing:library:2.0@aar'
    implementation 'com.daimajia.androidanimations:library:2.3@aar'

    implementation 'com.akexorcist:googledirectionlibrary:1.0.5'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'io.reactivex:rxjava:1.3.0'
    // Wifi hotspot library
    implementation 'cc.mvdan.accesspoint:library:0.2.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'org.jsoup:jsoup:1.10.3'
    api "com.airbnb.android:lottie:$rootProject.lottieVersion"
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    testImplementation 'junit:junit:4.12'
    implementation 'com.jakewharton:butterknife:8.8.1'

    debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'

    implementation 'com.googlecode.libphonenumber:libphonenumber:8.2.0'

    implementation "com.google.android.gms:play-services-base:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-cast-framework:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-auth:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-identity:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-awareness:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-cast:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-drive:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-location:$rootProject.playServicesVersion"
    implementation "com.google.android.gms:play-services-maps:$rootProject.playServicesVersion"

    implementation "com.google.firebase:firebase-core:$rootProject.firebaseVersionCore"
    implementation "com.google.firebase:firebase-perf:$rootProject.firebaseVersionPerf"
    implementation "com.google.firebase:firebase-messaging:$rootProject.firebaseVersionMessaging"
    implementation "com.google.firebase:firebase-analytics:$rootProject.firebaseVersionCore"


    api('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
        transitive = true
    }
    api('com.crashlytics.sdk.android:answers:1.4.1@aar') {
        transitive = true
    }
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    api project(path: ':libraryBTHelper')
    api project(':bkk_rush')

    debugApi 'com.amitshekhar.android:debug-db:1.0.3'
    api "org.jdeferred:jdeferred-android-aar:1.2.6"
    implementation 'com.android.support:gridlayout-v7:27.1.1'
}

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

Я пропустил несколько констант и другую конфиденциальную информацию в app / build.gradleфайл.

Ответы [ 20 ]

0 голосов
/ 01 февраля 2019

Прежде всего, это не ошибка

Это предупреждение

, и оно появляется при обновлении до версии 3.3.0.потому что io.fabric, так что подождите, пока текущая версия обновления ткани, где все еще отображается предупреждение, будет 'io.fabric.tools:gradle:1.27.1'

0 голосов
/ 23 января 2019

Последние новости от 01/24/2019

enter image description here

Информация здесь https://issuetracker.google.com/issues/116408637

Нам нужно подождать до Crashlyticsнашел решение, вот проблема GitHub открыта

https://github.com/firebase/firebase-android-sdk/issues/198

Единственный способ, которым я сейчас пользуюсь, чтобы не комментировать io.fabric плагинпонижение уровня моего gradle и обновление моего classpath ткани (это работает на моем производственном приложении)

 dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'io.fabric.tools:gradle:1.27.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
0 голосов
/ 26 января 2019

Как уже было сказано, проблема в Fabric / Crashlytics.

apply plugin: 'io.fabric'

Это ошибка на стороне Crashlytics / Firebase, пожалуйста, проверьте следующую ссылку и посмотрите статус ошибки: https://github.com/firebase/firebase-android-sdk/issues/198

0 голосов
/ 18 января 2019

Для тех, кому необходимо применить подключаемый модуль Fabric, временное решение - вернуться к предыдущей версии Gradle на уровне проекта.

Измените версию classpath на com.android.tools.build:gradle:3.2.1.

0 голосов
/ 23 января 2019

Это подтверждено как ошибка для Crashlytics, и они работают над этим.

https://issuetracker.google.com/issues/116408637

Цитируется от Google:

je ... @google.com # 23 23 января 2019 01:40 AM
Привет всем,

Спасибо за ваше терпение.

Похоже, что ошибка во всех случаях происходит из-за сбоев, и яЯ подал ошибку с ними.

Я буду держать вас в курсе статуса.

Для меня мое приложение отладки работает нормально на моем устройстве, просто запустив и проигнорировавпредупреждение без комментариев Crashlytics или Fabric.Я не пробовал работать.

Обновление:

Система отслеживания проблем Google пометила эти проблемы как Неисправимые (неосуществимые), потому что все проблемы были из Crashlytics,и пусть исправления сделаны командой Crashlytics (несмотря на то, что они все те же Googler ...).

Они предлагают перейти по этой ссылке для обновлений Crashlytics:

https://github.com/firebase/firebase-android-sdk/issues/198

Примечание: Я все еще использую Android Studio 3.3 с io.fabric.tools:gradle:1.26.0, не комментируя Craslytics, и он отлично работает в моем приложении отладки.

Обновление:

Теперь я могу подтвердить, что он отлично работает в моем приложении для рабочей / выпускной версии.Как я знаю, что это работает?Потому что он отправил мне обратно отчеты о сбоях -_- '

В любом случае, просто проигнорируйте предупреждение, в конце концов, они должны его исправить.

Ой, просто прочитайте, что оно исправлено с матрицей 1.28.0:)

0 голосов
/ 16 марта 2019

Проблема была исправлена ​​в их последнем выпуске 'io.fabric.tools:gradle:1.30.0'

Пожалуйста, обновите оба инструмента gradle fabric с помощью 1.30.0

buildscript {
  // ... repositories, etc. ...

   dependencies {
       // ...other dependencies ...
       classpath 'io.fabric.tools:gradle:1.30.0'
   }
}

Для получения более подробной информацииhttps://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453

0 голосов
/ 13 октября 2018

Не уверен, что является реальной проблемой, но комментируя зависимости, связанные с сбоем, от решенной проблемы проекта.

0 голосов
/ 16 января 2019

это исправит ошибку: На панели задач выберите Сервис-> Kotlin-> Настроить Kotlin в Project

0 голосов
/ 17 января 2019

Журнал сборки выводит информацию о том, как это отладить, особенно вам нужно запустить сборку с -Pandroid.debug.obsoleteApi=true, которая напечатает трассировку стека вызова устаревшего API, и вы сможете определить, какой плагин / код вызывает его.

Если он в конечном итоге становится вашим кодом - используйте новый API провайдера ( прочитайте документацию Lazy Task Configuration doc )

Если он исходит от другогоплагин - сообщить им о трассировке стека и предупреждающем сообщении и, возможно, отправить патч.Как и в этом случае, это связано с проблемой io.fabric.

0 голосов
/ 15 января 2019

Изменение совместимости исходного кода в файле модуля build.gradle на Java 8 устраняет проблему

compileOptions {
    sourceCompatibility 1.8
    targetCompatibility 1.8
}

Обязательно перестройте проект после добавления этих строк

...