it-swarm.asia

واجهة برمجة التطبيقات (API) "variant.getExternalNativeBuildTasks ()" قديمة وتم استبدالها بـ "variant.getExternalNativeBuildProviders ()

باستخدام 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:[email protected]'
    implementation 'com.daimajia.androidanimations:library:[email protected]'

    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:[email protected]') {
        transitive = true
    }
    api('com.crashlytics.sdk.Android:answers:[email protected]') {
        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'

لقد تخطيت بعض الثوابت والمعلومات الحساسة الأخرى في ملف التطبيق/build.gradle.

280
Jude Fernandes

تم إصلاح المشكلة في أحدث إصدار لها 'io.fabric.tools:gradle:1.28.0'

يرجى تحديث كلتا أداتك من نسيج gradle باستخدام 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

EDIT

تم إصلاح هذه المشكلة في 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 خيارات:

  • انتظر حتى يتم إصدار الإصدار التالي من نسيج البرنامج المساعد. تحقق من أحدث إصدار هنا .

  • الرجوع إلى Android Studio 3.2.1 .

  • التعليق خارج io.fabric البرنامج المساعد.

في build.gradle من وحدة التطبيق:

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

ومع ذلك ، لا يزال بإمكانك إنشاء مشاريعك وتشغيلها على الرغم من ظهور هذا الخطأ. فقط تجاهله.

226
Anggrayudi H

في build.gradle التطبيق ، قم بالرجوع إلى هذا الإصدار الثابت من gradle:

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

يحدث ذلك بعد أن قمت بتحديث Android Studio إلى 3.3 ، حل مؤقت حتى يتم إصلاحه!

تحرير: أنت لست بحاجة إلى خفض مستوى استوديو أندرويد الخاص بك!

58
Amer Al Ziebak

UPDATEاعتبارا من اليوم ، يمكنك استخدام classpath 'io.fabric.tools:gradle:1.28.0' لإصلاح هذه المشكلة!

إذا كان التعليق خارج Crashlytics's plugin io.fabric على ملف gradle app ، فقد عمل من أجلك مؤقتًا

//apply plugin: 'io.fabric'

بعد ذلك ، ستؤدي ترقية تبعيات gradle fabric إلى ملف gradle Project إلى حل المشكلة نهائيًا:

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

ملاحظة: هذا لا يزيل التحذيرات ولكنه يتيح لك استخدام Crashlytics مع AS3.3 +

13
113408

لست متأكدًا من ماهية المشكلة الفعلية ، لكن تعليقًا على التبعيات المتعلقة بالتعطل من مشكلة حل المشروع.

13
Jude Fernandes

تم التأكيد على أنه خطأ في Crashlytics وهم يعملون عليه.

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

مقتبس من جوجل المحال:

je ... @ google.com # 23 Jan 23، 2019 01:40 AM
اهلا بالجميع،

شكرا لك على صبرك.

يبدو أن الخطأ في جميع الحالات يأتي من تحطم الطائرة ولقد قدمت خطأ معهم.

سأبقيك على اطلاع دائم على الحالة.

بالنسبة لي ، تطبيق تصحيح الأخطاء الخاص بي يعمل بشكل جيد على جهازي فقط عن طريق تشغيل التحذير وتجاهله دون تعليق Crashlytics أو Fabric. لم أحاول الإنتاج.

التحديث:

وضع Google Issue Tracker علامة على هذه المشكلات على أنها Won't Fix (Infeasible) لأن جميع المشكلات كانت من Crashlytics ، واترك الإصلاحات التي أجراها فريق Crashlytics (على الرغم من أنها تمثل نفس Google ...).

يقترحون اتباع هذا الرابط للحصول على تحديثات 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 :)

11
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 المكوّن الإضافي يعمل على خفض مستوى درجتي وترقية مسار النسيج الخاص بي (يعمل هذا على تطبيق الإنتاج الخاص بي)

 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
Gastón Saillén

كما قيل ، فإن المشكلة تكمن في Fabric/Crashlytics.

apply plugin: 'io.fabric'

إنه خطأ على جانب Crashlytics/Firebase ، يرجى التحقق من الرابط التالي ومشاهدة حالة الخطأ: https://github.com/firebase/firebase-Android-sdk/issues/198

4
Trinity

يحدث هذا بسبب تحديث Android Studio من Android Studio 3.2.0 إلى Android Studio 3.3.0. تحديث تبعيات Gradle الخاص بك (مشروع) IO.Fabric. مثل:

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

وكذلك تحديث إصدار Kotlin الخاص بك إلى

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

هذا سوف يحل هذه القضايا. شكر

2
Rahul Kushwaha

قد يشير متتبع المشكلة إلى "تكوين المهمة البطيئة" -

هذا على الأقل ما تجنب تكوين المهمة يقترح.

ولكن يمكن لأحدهم منع الوصول إلى هذه الطريقة القديمة BaseVariantImpl ، عندما لا يتمكن variant.outputs.all من الوصول إلى هذه الطريقة (داخليًا) - أو عندما يمكن أن تمنع عمليات التحقق الوصول ؛ أو عند الوصول إلى المتغير باسمه ؛ أو بطريقة أو بأخرى تعطيل مهام البناء الأصلية الخارجية للمتغير. راجع أيضًا خيار المشروع المتزامن المفرد الخيار ، والذي يبدو مرتبطًا.

أو انتظر أدوات البناء3.3.0-alpha12 أو 3.3.0-beta1 ... هذه ليست حتى release candidate ، وبالتالي فإن الاستثمار في الكثير من الوقت قد يكون بلا فائدة - باستثناء استخدامه لتقديم تقرير عن خلل آخر.

ردود الفعل السريعة الجديدة  quick feedback زر لا يزال يبدو الأكثر واعدة.

2
Martin Zeitler

يطبع سجل السجل كيفية تصحيح هذا ، خاصةً تحتاج إلى تشغيل إنشاء باستخدام -Pandroid.debug.obsoleteApi=true ، والذي سوف يطبع تتبع مكدس الاستدعاء إلى واجهة برمجة التطبيقات المهملة وستكون قادرًا على معرفة أي مكوّن إضافي/يستدعي الرمز.

إذا انتهى الأمر إلى أن يكون الرمز الخاص بك - استخدم API Provider الجديد ( اقرأ Lazy Task Configuration doc )

إذا كان يأتي من مكون إضافي - قم بإبلاغهم باستخدام تتبع المكدس ورسالة تحذير وربما أرسل تصحيحًا. كما هو الحال في هذه الحالة ، يتعلق الأمر io.fabric.

1
0xAliHn

بالنسبة لي ، اتبعت هذه الخطوات: 1. قم بترقية تبعية Gradle على مستوى بناء build.gradle.

        classpath 'io.fabric.tools:gradle:1.28.0'
  1. أضف تبعية المكوّن الإضافي أدناه طبق المكوّن الإضافي: 'com.Android.application' في build.gradle على مستوى التطبيق.

        apply plugin: 'io.fabric'
    
  2. مزامنة المشروع مع ملفات الدرجات.

1
amit pandya

تم إصلاح هذا في أحدث إصدار من البرنامج المساعد لـ Fabric gradle ، 1.28.0 ، والذي تم بثه مباشرة اليوم. احصل على هذا في build.gradle المستوى الأعلى الخاص بك:

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

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

في حالتي ، كنت بحاجة إلى استخدامio.fabricplugin ، وكان الحل هو التحديث إلى أحدث إصدار من gradle tools:

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

بالنسبة لأولئك الذين يحتاجون إلى الحفاظ على المكون الإضافي لـ Fabric ، فإن الحل المؤقت هو العودة إلى الإصدار السابق من gradle على مستوى المشروع.

تغيير إصدار classpath إلى com.Android.tools.build:gradle:3.2.1.

0
Henrique Monte

يؤدي تغيير توافق المصدر في ملف الوحدة النمطية 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-> تكوين Kotlin في المشروع

0
Sadjad Abbasnia

عندما فتحت المشروع ، ضغطت على زر Run migrations الذي يظهر في الركن السفلي الأيمن من Android Studio. تم إجراء الترحيل وتم حل المشكلة دون التعليق على التبعية Crashlytics.

 enter image description here

0
pableiros