it-swarm.asia

أخفق حل المتغير '$ {animal.sniffer.version}' عند الترحيل إلى AndroidX

أنا أستخدم Android Studio 3.2 Beta5 لترحيل مشروعي إلى AndroidX . عندما أعيد إنشاء تطبيقي ، حصلت على هذه الأخطاء:

خطأ: [TAG] فشل في حل المتغير '$ {animal.sniffer.version}'

خطأ: [TAG] فشل في حل المتغير '$ {junit.version}'

تنظيف كامل وإعادة بناء لم تنجح! أحد يعرف كيفية إصلاح هذا؟

gradle.properties

Android.enableJetifier=true
Android.useAndroidX=true

build.gradle

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.2.0-beta05'

        classpath 'com.google.gms:google-services:4.0.1'
        classpath "io.realm:realm-gradle-plugin:5.3.1"
        classpath 'io.fabric.tools:gradle:1.25.4'
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
    }
}

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

التطبيق/build.gradle

apply plugin: 'com.Android.application'
apply plugin: 'realm-Android'
apply plugin: 'io.fabric'
apply plugin: 'com.google.firebase.firebase-perf'

Android {
    compileSdkVersion 28
    buildToolsVersion "28.0.0"
    defaultConfig {
        applicationId "com.iceteaviet.fastfoodfinder"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }
    aaptOptions {
        cruncherEnabled = false
    }
}

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

    implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'

    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
    implementation 'com.google.Android.material:material:1.0.0-rc01'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
    implementation 'androidx.cardview:cardview:1.0.0-rc01'

    implementation 'com.google.maps.Android:android-maps-utils:0.5'
    implementation 'com.google.Android.gms:play-services-maps:15.0.1'
    implementation 'com.google.Android.gms:play-services-location:15.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.1'
    implementation 'com.google.Android.gms:play-services-auth:15.0.1'

    implementation 'com.github.bumptech.glide:glide:4.7.1'

    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

    implementation 'org.greenrobot:eventbus:3.1.1'

    implementation 'de.hdodenhof:circleimageview:2.2.0'

    implementation 'io.realm:realm-Android-library:5.3.1'

    implementation 'com.facebook.Android:facebook-Android-sdk:4.34.0'

    implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
    implementation 'io.reactivex.rxjava2:rxjava:2.0.2'

    implementation 'androidx.multidex:multidex:2.0.0'

    implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.4'
    implementation 'com.google.firebase:firebase-perf:16.0.0'

    implementation 'com.jakewharton.timber:timber:4.7.1'

    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
}

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

أنا إصلاح هذا مع خطوتين

1) ملف -> إبطال ذاكرة التخزين المؤقت/إعادة التشغيل ...  enter image description here

2) بناء -> مشروع نظيف  enter image description here

75
Beto

إضافة دعم جافا 8 إلى build.gradle ملف القضية الثابتة بالنسبة لي

Android {
     ...

     //Add the following configuration in order to target Java 8.
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
}
15
Dhaval Patel

حصلت على نفس الخطأ بعد تحديث ملف build.gradle الخاص بي مع تبعيات AndroidX Test . تبين أنني نسيت إزالة التبعية القديمة junit. بالنسبة لي ، كان الإصلاح هو ببساطة إزالة التبعية التالية:

dependencies {
    ...
    testImplementation 'junit:junit:4.12'
}
14
A Droid

يبدو أن الإنزلاق المشكلة.

كان لدي نفس الخطأ وقمت بتحديث تبعيات Glide إلى 4.8 ولا توجد أخطاء في الإنشاء.

Kotlin:

// Glide
def glide_version = "4.8.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
kapt "com.github.bumptech.glide:compiler:$glide_version"

جافا:

// Glide
def glide_version = "4.8.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"

تأكد من تمكين في gradle.properties:

Android.useAndroidX=true
Android.enableJetifier=true

المصدر: https://github.com/bumptech/glide/issues/3124

ارجوا ان يساعدك هذا!

14
Vince

حاول إزالة هذا الخط:

maven { url "https://oss.sonatype.org/content/repositories/snapshots" }

من قسم المخططات/المستودعات في ملف build.gradle الخاص بك.

عندما أضفت هذا السطر ، حصلت على الخطأ الذي وصفته. عندما أزلته ، لم يعد. يجب أن يكون هذا السطر فقط في قسم allprojects/repositories.

3
Raj

إزالة testInstrumentationRunner عملت بالنسبة لي:

defaultConfig {
...
...
//        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
3
M. Usman Khan

إذا كنت تستخدم Kotlin ، فستظهر المشكلة في حالة عدم استخدام الإصدار kapt لأي معالج تعليقات توضيحية تستخدمه في المشروع.
كما ذكرتVince الحالة بـ Glide ، فقد يحدث هذا مع Dagger2 ، Butterknife ، إلخ.
إذا كنت تستخدم كل من Java و Kotlin ، فستحتاج إلى الاحتفاظ بكلتا التبعيتين ، كما يلي (كانت $glideVersion عبارة عن إصدار محدد مسبقًا من Glide):

implementation "com.github.bumptech.glide:glide:$glideVersion"

kapt "com.github.bumptech.glide:compiler:$glideVersion"

إذا كنت تستخدم مشروع Kotlin فقط ، فيجب أن تعمل التبعية kapt بمفردها.

تصحيح
شيء آخر يجب أن تفكر فيه هو إذا كنت تستخدم بالفعل Androidx. Androidx هو refactor كبير ولكن عند الترحيل يمكن أن يسبب بعض التبعيات الخاصة بك إلى الانهيار. يتم تحديث المكتبات العامة بالفعل إلى Androidx ، ومع ذلك ، فإن بعضها ليس كذلك ولا حتى.
إذا لم تختف المشكلة مع حل مقدم لي أعلى هذا التعديل ، فيمكنك إلقاء نظرة على تبعياتك والتأكد من أنها تستخدم Androidx أيضًا.

تحرير 2
كما ذكرتTed ، لقد بحثت مرة أخرى وهو على حق - kapt يتعامل مع ملفات Java أيضًا. kapt وحده سوف يقوم بالخدعة ، ولا حاجة للاحتفاظ بكل من تبعيات kapt و annotationProcessor.

2
pamobo0609

حاول تعيين Android.enableJetifier = false في gradle.properties. ثم إبطال مخابئ/إعادة التشغيل ... في Android Studio

2
Minh Pham

الإصلاح في 4.2.0 ، استخدم الإصدار الأعلى من google gms jar.

حاول التغيير:

classpath 'com.google.gms: google-services: 4.0.1'

بواسطة هذا الإصدار:

classpath 'com.google.gms: google-services: 4.2.0'

تتمنى ان يعمل...

1
Dimitri de Jesus

أنا إصلاح هذا عن طريق تحديث تبعيات firebase إلى الأحدث.

0
Gab Ledesma