web-dev-qa-db-ja.com

API 'variant.getExternalNativeBuildTasks()'は廃止され、 'variant.getExternalNativeBuildProviders()に置き換えられました。

Gradleプラグインバージョン3.3.0-alpha11でAndroid Studio 3.3 Canary 11を使用する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"
            }
        }

ここで何を変更する必要がありますか。

プロジェクト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'
}

アプリ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ファイルにあるいくつかの定数と他の機密情報を飛ばしました。

182
Jude Fernandes

この問題は、最新リリースの'io.fabric.tools:gradle:1.28.0'で修正されています。

両方のグラドルファブリックツールを 1.28.0 で更新してください

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

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

詳細については https://github.com/firebase/firebase-Android-sdk/issues/198#issuecomment-473435453

178
0xAliHn

Android Studioを3.3.0にアップデートした後に発生します。 apply plugin: 'io.fabric'が原因です。この問題についてFirebaseチームにバグレポートを送信しました。

3つの選択肢があります。

アプリのモジュールのbuild.gradleで:

apply plugin: 'com.Android.application'
// apply plugin: 'io.fabric' <== this plugin causes the error

ただし、このエラーが表示されてもプロジェクトをビルドして実行することはできます。無視してください。

169
Anggrayudi H

アプリケーションbuild.gradleで、この安定版のgradleにダウングレードします。

classpath 'com.Android.tools.build:gradle:3.2.1'

彼らがそれを修正するまで、私はAndroid Studioを3.3、一時的な解決策に更新した後に起こります!

編集:あなたはあなたのAndroidスタジオをダウングレードする必要はありません!

53
Amer Al Ziebak

実際の問題が何であるかはわかりませんが、プロジェクトからクラッシュリスティック関連の依存関係をコメントアウトすることで問題を解決しました。

13
Jude Fernandes

アプリGradleファイルのCrashlyticsのプラグインio.fabricをコメントアウトすると一時的にうまくいく 

//apply plugin: 'io.fabric'

それでは、Project GradleファイルのFabric Gradle依存関係をアップグレードすると、恒久的に問題が解決します。

classpath 'io.fabric.tools:gradle:1.27.0'

注意:これは警告を削除するものではありませんが、AS3.3以降でCrashlyticsを使用することを可能にします

11
113408

それはCrashlyticsのバグとして確認されており、彼らはそれに取り組んでいます。

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

Googleの担当者からの引用

je ... @ google.com#23 2019年1月23日01:40 AM
こんにちは、みんな、

お待ちいただいてありがとうございます。

それはすべてのケースでバグがcrashlyticsから来ているように見えます、そして私は彼らにバグを提出しました。

私はあなたが最新の状態に保ちます。

私にとっては、CrashlyticsやFabricにコメントせずに警告を実行して無視するだけで、私のデバッグアプリは私のデバイス上で正常に動作しています。私は生産を試みませんでした。

更新:

Google Issue Trackerは、すべての問題がCrashlyticsからのものであるため、この問題を「未解決(不可能)」とマークし、Crashlyticsチームによる修正を許可しました(同じGooglerですが...)。

彼らはCrashlyticsの更新のためにこのリンクをたどることを勧めます:

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

注:私はまだCraslyticsのどれもコメントせずにio.fabric.tools:gradle:1.26.0でAndroid Studio 3.3を使用しています、そしてそれは私のデバッグアプリでうまく働きます。 

10
Ryde

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 pluginが現在のグレードを下げ、ファブリッククラスパスをアップグレードしているだけです(これは私のプロダクションアプリケーションで動作しています)

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

言われたように、問題はFabric/Crashlyticsにあります。

apply plugin: 'io.fabric'

それはCrashlytics/Firebase側のバグです、以下のリンクをチェックして、バグのステータスを見てください: https://github.com/firebase/firebase-Android-sdk/issues/198

3
Trinity

これは、Android StudioがAndroid Studio 3.2.0からAndroid Studio 3.3.0にアップデートされたことが原因です。 IO.FabricのGradle依存関係(プロジェクト)を更新してください。好きです:

classpath 'io.fabric.tools:gradle:1.27.1'

また、Kotlinのバージョンを

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"

これでこの問題は解決します。ありがとう

2
RAHUL

issue-trackerは "lazy task configuration"を参照するかもしれません -

それは少なくとも タスク構成の回避 が示唆するものです。

しかし、variant.outputs.allが(内部的に)そのメソッドにアクセスできない場合、またはチェックがアクセスを妨げる可能性がある場合は、おそらくBaseVariantImplのこの古いメソッドへのアクセスを防ぐことができます。またはその名前でバリアントにアクセスするとき。または何らかの形で、バリアントの外部ネイティブビルドタスクを無効にします。 シングルバリアントプロジェクトのsync オプションも参照してください。 

または build-tools3.3.0-alpha12または3.3.0-beta1を待つ…これはrelease candidateでもないので、時間をかけて投資しても意味がない場合があります - それを使用して別のバグレポートを提出する場合を除きます。

新しいクイックフィードバック quick feedback ボタンはまだ最も有望に見えます。

2
Martin Zeitler

ビルドログはこれをデバッグする方法を表示します。特に-Pandroid.debug.obsoleteApi=trueを付けてbuildを実行する必要があります。

それがあなたのコードになってしまった場合 - 新しいプロバイダAPIを使う( Lazy Task Configurationのドキュメントを読んでください

他のプラグインから来たものであれば - スタックトレースと警告メッセージで彼らに報告して、おそらくパッチを送ってください。この場合のようにそれはio.fabric問題に関連しています。

1
0xalihn

私にとっては、私は次の手順に従いました。1.プロジェクトレベルbuild.gradleでGradleの依存関係をアップグレードします。

        classpath 'io.fabric.tools:gradle:1.28.0'
  1. このプラグイン依存関係を以下に追加してください プラグインを適用してください: 'com.Android.application' /アプリレベルでbuild.gradle。

        apply plugin: 'io.fabric'
    
  2. プロジェクトをgradleファイルと同期します。

1
amit pandya

私の場合は、io.fabricpluginを使用する必要があり、その解決策は、最新のFabric Tools gradleバージョンに更新することでした。

classpath 'com.Android.tools.build:gradle:3.3.0'
classpath 'io.fabric.tools:gradle:1.27.0'
0
Fragment

修正は、ルートビルドgradleファイルを最新に更新することです。そして、この答えは今も当てはまります。今後も新しい変更がgradleおよびAndroid SDKによって実装されます。時々、答えは時間の経過とともに変化します。

repositories {
    maven { url "https://jitpack.io" }
    maven {
        url 'https://maven.fabric.io/public'
    }
    google()
    jcenter()

}
dependencies {

    classpath 'com.Android.tools.build:gradle:3.5.0'
    classpath 'com.google.gms:google-services:4.3.0'
    classpath 'io.fabric.tools:gradle:1.30.0'
}
0
Pavan

Fabricプラグインを適用し続ける必要がある場合、一時的な解決策はプロジェクトレベルで以前のバージョンのGradleに戻ることです。

クラスパスのバージョンをcom.Android.tools.build:gradle:3.2.1に変更します。

0
Henrique Monte

Android Studioをアップデートした後もプロジェクトを開始できませんでした。しかし、.gradle、.ideaを削除してフォルダを作成し、プロジェクトを再インポートした後、すべてうまくいきましたが、警告は残ります。

0

モジュールbuild.gradleファイルのソース互換性をJava 8に変更することで問題が解決します

compileOptions {
    sourceCompatibility 1.8
    targetCompatibility 1.8
}

これらの行を追加した後は、必ずプロジェクトを再ビルドしてください。

0
Petar

最新のgradle(私の場合は3.3.2)バージョンとFabric.ioプラグインに問題がありました。これは新しいバージョンで解決されました。ユーザーはこれを最上位のbuild.gradleに含める必要があります。

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

    dependencies {
        // ...other dependencies ...
        classpath 'io.fabric.tools:gradle:1.28.0'
    }
}
0
Mohammad

これによりエラーが修正されます。タスクバーの[ツール] - > [Kotlin] - > [Configure Kotlin in Project]をクリックします

0
Sadjad Abbasnia

プロジェクトを開いたとき、Run migrationsから右下隅に表示されるAndroid Studioボタンを押しました。マイグレーションが実行され、問題はCrashlytics依存関係をコメントアウトすることなく解決されました。

enter image description here

0
pableiros