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


337

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

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

事業 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ファイルの定数やその他の機密情報をいくつか省略しています。


build.gradle(app)を投稿できますか?
Skizo-ozᴉʞS

@Skizo-ozᴉʞSがプロジェクトのbuild.gradleファイルを追加しました
Jude Fernandes


@alashowこれは別の問題に関連しています。「API 'variant.getJavaCompile()' is obsolete ..」というメッセージがあります
Vadim Kotov

16
安定版にも問題があります
kp91

回答:


286

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

両方のGradleファブリックツールを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


プロジェクトレベルとアプリの両方のbuild.gradleで必ず変更してください。
RJB

2
バージョン1.28.0で問題が解決しました。現在のバージョンは1.29.0 docs.fabric.io/android/changelog.html#fabric-gradle-plugin
Alexander Hartmann

ChangeLogは次のとおり
DSchmidt

私はまだこの警告を取得していますclasspath 'io.fabric.tools:gradle:1.31.0'implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'。再び壊れるか、すべてのケースで修正されていません。
Gene S

このファブリックツールのGradleバージョンはどこで入手しましたか?私は1.25.4 mvnrepository.com/artifact/io.fabric.tools/gradleを
Lachlan Young

248

編集

この問題は、Fabric 1.28.0で修正されました。あなたにはbuild.gradle、プロジェクトレベルの、次の行を追加します。

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

前の回答

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

次の3つのオプションがあります。

  • Fabricプラグインの次のバージョンがリリースされるまで待ちます。こちらで最新バージョンを確認してください。

  • Android Studio 3.2.1にダウングレードします。

  • io.fabricプラグインをコメント化します。

ではbuild.gradle、アプリケーションのモジュールの:

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

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


2
Firebaseで開いたバグレポートまたは問題にリンクすることはできますか?私はそれを賛成したいです。
yuval

8
io.fabricプラグインを使用する必要がありますが、これを変更せずにこの警告を削除するにはどうすればよいですか?
0xAliHn

16
これが原因であり、実行可能な解決策ではありません
ダニエルウィルソン

1
2019年末まで使えるとのこと。今のところ私が使用しているので、何が起こるかがわかります)
support_ms

4
なぜダウングレードするのですか?も意味ない!これは単なる警告であり、まだ削除されておらず、プロジェクトをビルドできます(2019年全体...)。私は彼らが今年中にそれを修正すると信じています
user25 '25

60

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

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

Android Studioを3.3、一時的なソリューションに修正してから修正されるまで発生します。

編集:Android Studioをダウングレードする必要はありません!


2
次に、Android Studio 3.2.1にダウングレードする必要もあります。とにかく感謝
ルベン・Viguera

Android Studio(AS)をバージョン3.3にアップグレードした後も同じ問題が発生しました。ASの更新前に使用していたバージョンであるGradleをバージョン4.6に、Android Gradleプラグインをバージョン3.2.1にダウングレードすることで、Gradle同期を再び機能させることができました。Gradleとプラグインのバージョンを変更する方法がわからない場合は、こちらの表を参照してください。
Rabie Jradi

6
提案に対する感謝を何も格下げすることなく機能しました
Sid

3
Androidスタジオ@RubénVigueraをダウングレードする必要はありません
Amer Al Ziebak

1
回答で述べたように、gradleバージョン以外をダウングレードする必要はありません。これは受け入れられる答えになるはずです。
MDデンマーク語Ansari

16

更新 今日classpath 'io.fabric.tools:gradle:1.28.0'から、この問題を修正するために使用できます!

アプリのgradleファイルでCrashlyticsのプラグインio.fabricをコメントアウトすると、一時的に機能しました

//apply plugin: 'io.fabric'

次に、プロジェクトグラドルファイルでファブリックグラドルの依存関係をアップグレードすると、問題が完全に解決します。

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

注意:これで警告は削除されませんが、AS3.3以降でCrashlyticsを使用できます


@RJB Crashlyticsを使用していますか?プロジェクトから削除した場合、機能しますか?はいの場合、これで問題が解決します。ただし、引き続き警告が表示される場合がありますが、プロジェクトはコンパイルされ、APKを安全に生成できます
113408

はい。私はまだ警告を受けています。
RJB

opと他の人(私を含む)にはこの問題があり、crashlytics有効にしてプロジェクトをコンパイルできませんでした。したがって、Crashlyticsを維持し、引き続き製品版にプッシュするには、「警告」がトリガーされても、上記の更新を使用できます。
113408


11

Crashlyticsのバグとして確認されており、現在取り組んでいます。

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

Googleの譲受人からの引用:

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

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

すべての場合のバグはcrashlyticsから発生しているようで、私はバグを報告しました。

ステータスは随時お知らせします。

私にとっては、Crashlyticsやファブリックにコメントせずに警告を実行して無視するだけで、私のデバッグアプリがデバイスで正常に動作しています。制作はしていません。

更新:

すべての問題はCrashlyticsからのものであったため、Google Issue Trackerはこの問題をWo n't Fix(Infeasible)としてマークし、Crashlyticsチームが修正を許可しました(同じGooglerであるにもかかわらず...)。

Crashlyticsの更新については、次のリンクをたどることをお勧めします。

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

注:Craslyticsにコメントを付けずにio.fabric.tools:gradle:1.26.0でAndroid Studio 3.3を使用していますが、デバッグアプリでは問題なく機能します。

更新:

製品版/リリース版のアプリで問題なく動作することを確認できました。それが機能することをどうやって知るのですか?クラッシュレポートを返送してきたからです。

とにかく、警告は無視してください。最終的には修正する必要があります。

ああ、ちょうどそれがファブリック1.28.0で修正されたことを読んでください:)


8

2019年1月24日の最新ニュース

ここに画像の説明を入力してください

こちらの情報https://issuetracker.google.com/issues/116408637

Crashlyticsで解決策が見つかるまで待つ必要があります。これがGitHubの問題です。

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

今のところio.fabricプラグインをコメントしないように使用している唯一の方法は、gradleをダウングレードして、ファブリッククラスパスをアップグレードすることです(これは、本番アプリで動作しています)。

 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
    }

どのようにして私たちは追加-dontwarn com.crashlytics.android.Crashlyticsproguard-rules.pro
Mustansir

1
あなたは問題が残っていると、あなたは最終的には再び問題に戻って取得する必要がありますことを実行して警告を削除する場合
ガストンSaillén

正しい!ビルドをコンパイルするための一時的な解決策ですが、すべてをダウングレードするよりもはるかに優れています。
Mustansir 2019

はい、あなたが更新されたバージョンを維持することができますが、それは動作しません警告を閉じた場合、それは、仕事に原因となりますダウングレード
ガストンSaillén

@Mustansir、私はそれがgradle関連の問題であり、Proguardとは何の関係もないと思います。
WindRider


3

課題追跡は「遅延タスク構成」を参照する場合があります-

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

しかし、このメソッドに(内部で)アクセスしない場合、またはチェックによってアクセスを阻止できる場合BaseVariantImpl、この古いメソッドへのアクセスを阻止できる可能性がvariant.outputs.allあります。またはその名前でバリアントにアクセスするとき; または、バリアントの外部ネイティブビルドタスクを何らかの方法で無効にします。単一バリアントプロジェクトの同期オプションも参照してください。

または、build-toolsを 待つ3.3.0-alpha12か、3.3.0-beta1これはでもありませんrelease candidate。したがって、別のバグレポートを提出するために使用することを除いて、多くの時間を費やすことは無意味です。

新しいクイックフィードバック迅速なフィードバックボタンは依然として最も有望に見えます。


はい、同意します。このタイプのエラーは、以前のビルドツールには存在しませんでした。次のRCで修正される可能性があります
d4c0d312

7
リリースでは修正されていません
Juan Diaz

developer.android.com/studio/releases/gradle-plugin#3-3-0 ...追加android.debug.obsoleteApi=trueして、それがどこから来たかを確認します。Provider名前が追加され、名前が変更されたいくつかのメソッドがありました。
Martin

1
プロジェクトgradle.propertiesの@SergeyNarozhnyy
sigitbn

1
@SergeyNarozhnyy 3.3.0バリアントAPIが変更されたため、リリースではいくつかの問題がありました。最近のディスカッションをリンクできます:stackoverflow.com/questions/54206898/…(そこに回答として概要を追加しました)。
Martin

3

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

        classpath 'io.fabric.tools:gradle:1.28.0'
  1. このプラグインの依存関係を以下に追加します 。applyplugin: 'com.android.application' をアプリレベルのbuild.gradleに適用します

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


2

これは、Android Studio 3.2.0からAndroid Studio 3.3.0へのAndroid Studioのアップデートが原因で発生します。IO.FabricのGradle依存関係(プロジェクト)を更新します。お気に入り:

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

また、Kotlinのバージョンを

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

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


1
ありがとう。あなたの答えは私を助けました。
アンドレ・ルイス・レイス

あなたはAndréLuizReis@常に歓迎されている
ラーフルKushwaha

@Sean Kotlinとio febric.thenを使用している場合、クラスパスバージョンをダウングレードするために他の方法で機能します。機能します...
Rahul Kushwaha

CrashlyticsビルドIDがありません。これは、アプリのビルド構成にCrashlyticsツールがない場合に発生します
Vishal Patoliyaツマー

1

ビルドログはこれをデバッグする方法を出力します、特にビルドを実行する必要があります -Pandroid.debug.obsoleteApi=true、で廃止されたAPIへの呼び出しのスタックトレースが出力され、どのプラグイン/コードがそれを呼び出すかを理解できます。

最終的にコードになる場合 —新しいプロバイダーAPIを使用します(レイジータスク構成ドキュメントを参照)

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


1

これは、Fabric Gradleプラグインの最新リリース1.28.0で修正され、本日公開されました。これを最上位のbuild.gradleに入れます。

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

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

0

プロジェクトを開いたらRun migrations、の右下にあるボタンを押しましたAndroid Studio。マイグレーションが実行され、Crashlytics依存関係をコメント化せずに問題が解決されました。

ここに画像の説明を入力してください


0

モジュールbuild.gradleファイルのソース互換性をJava 8に変更すると、問題が修正されます

compileOptions {
    sourceCompatibility 1.8
    targetCompatibility 1.8
}

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


トップレベルbuild.gradleまたはモジュールレベル(/ app)?
ニャー猫2012年

モジュールレベル(アプリ)
jesses.co.tt


0

私の場合、io.fabricプラグインを使用する必要があり、解決策は、最新のファブリックツールGradleバージョンに更新することでした。

classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'io.fabric.tools:gradle:1.27.0'

0

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

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


0

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

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

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

0

修正は、ルートビルドグラドルファイルを最新に更新することです。そしてこの答えは今も成り立つ。将来的には、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'
}

-7

まず、これはエラーではありません

それは警告です

そして、gradleを3.3.0に更新するとその表示が頻繁に発生します。io.fabricが原因で発生することが多いので、警告が表示される更新ファブリックの現在のバージョンが 'io.fabric.tools:gradle:1.27.1'になるまで待ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.