AndroidX पर माइग्रेट करते समय चर '$ {animal.sniffer.version}' को हल करने में विफल


138

मैं अपने प्रोजेक्ट को AndroidX पर माइग्रेट करने के लिए Android Studio 3.2 Beta5 का उपयोग कर रहा हूं । जब मैंने अपने ऐप का पुनर्निर्माण किया तो मुझे ये त्रुटियां मिलीं:

त्रुटि: [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'

यहाँ कोई प्रगति?
चाड बिंघम

@ChadBingham नहीं, यह अभी भी एक ही त्रुटि है
nhoxbypass

अंत में हल मिल गया, कृपया यहां उत्तर
पाएं

के संभावित डुप्लिकेट stackoverflow.com/questions/52294319/...
Nabster

5
@Nabster hey hey मेरा सवाल एक महीने पहले पोस्ट किया गया था जबकि यह सवाल 20 घंटे पहले पोस्ट किया गया था!
nhoxbypass

जवाबों:


108

मैं इसे दो चरणों के साथ ठीक करता हूं

1) फ़ाइल -> अमान्य कैश / पुनरारंभ करें ... यहां छवि विवरण दर्ज करें

2) बिल्ड -> स्वच्छ परियोजना यहां छवि विवरण दर्ज करें


4
किसी तरह से कुछ के लिए काम किया, लेकिन Im अब फिर से वही त्रुटि हो रही है ..
अल काबोन

2
मेरे लिए क्लीन प्रोजेक्ट सिर्फ पर्याप्त है
f4bo

1
इसके अलावा स्वच्छ परियोजना मेरे लिए आवश्यक थी। धन्यवाद @ f4bo टिप के लिए।
जॉन बेंटले

1
यह काम करता हैं। मैं केवल स्वच्छ परियोजना। यह उत्तर स्वीकृत उत्तर के रूप में सेट किया जाना चाहिए। @ यनक्सबिपास
अज़वार_कबर

30

AndroidX टेस्ट निर्भरताओं के साथ अपनी build.gradle फ़ाइल को अपडेट करने के बाद मुझे वही त्रुटि मिली । बाहर मुड़ता है मैं पुराने जूनिट निर्भरता को दूर करने के लिए भूल गया। तो मेरे लिए, फिक्स केवल निर्भरता को दूर करने के लिए था:

dependencies {
    ...
    testImplementation 'junit:junit:4.12'
}

मेरे लिए यही समस्या थी।
ब्रिल पपिन

हां इसे ठीक कर दिया। मैं उडेसिटी कोटलिन के साथ इस मुद्दे पर भाग गया था कि यह खेल लगता है
असविन मोहन

क्या आप बता सकते हैं कि ऐसा क्यों है?
रिज-वॉन

17

जोड़ना जावा 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
     }
}

लीनबैक नहीं मिला। im एक टीवी ऐप का निर्माण कर रहा है और यह
लीनबैक

1
अमान्य कैश और पुनः आरंभ करें android स्टूडियो
धवल पटेल

3
नहीं, नहीं, मुझे लगा कि आप androidx पैकेज का उपयोग करेंगे।
राल्फगैब

मुझे लगता है कि जावा 8 सपोर्ट फोर्स को जोड़ने के लिए एंड्रॉइड स्टूडियो इसे कैश करने के लिए अमान्य करता है और इस तरह एक साइड-इफेक्ट के समान परिणाम प्राप्त करता है ... हम्मम, ठीक है ...
varun

14

यह समस्या को ग्लाइड लगता है।

मेरे पास एक ही त्रुटि थी और मैंने सिर्फ ग्लाइड की निर्भरता 4.8 में अपडेट की और कोई बिल्ड एरर नहीं है।

कोटलिन:

// 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

आशा है कि यह आपकी मदद करेगा!


9
ग्लाइड पर निर्भरता के रूप में ग्लाइड के बिना यह त्रुटि भी मुझे दिखाई देती है
फाबियन स्ट्रेटेल

6

मुख्य निर्देशिका पर जाकर और इसे टाइप करके तय किया flutter clean


1
महान, क्या होगा अगर आप स्पंदन का उपयोग नहीं कर रहे हैं;)
केविन गैलिगन

2
@KevinGalligan फ़्लटर का उपयोग करें;)
नेफ्यू

4

TestInstrumentationRunner को हटाकर मेरे लिए काम किया:

defaultConfig {
...
...
//        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

शानदार समाधान! यह मेरे लिए तय किया
beastlyCoder

4

यदि आप उपयोग कर रहे हैं 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निर्भरता को अकेले काम करना चाहिए।

संपादित करें
एक और बात जो आपको ध्यान में रखनी चाहिए, यदि आप पहले से उपयोग कर रहे हैं AndroidxAndroidxएक महान रिफ्लेक्टर है लेकिन जब यह माइग्रेट हो रहा है तो यह आपकी कुछ निर्भरता को समाप्त कर सकता है। मुख्यधारा के पुस्तकालय पहले से ही अद्यतन हैं Androidx, हालांकि, उनमें से कुछ भी नहीं हैं और यहां तक ​​कि नहीं भी होंगे।
यदि समस्या इस संपादन के ऊपर मेरे प्रदान किए गए समाधान के साथ नहीं जाती है, तो आप अपनी निर्भरता पर एक नज़र डाल सकते हैं और सुनिश्चित कर सकते हैं कि वे भी उपयोग करें Androidx

EDIT 2
जैसा कि @ उल्लेख किया गया है, मैंने वापस शोध किया और वह सही kaptहै javaफाइलों को भी संभालती है । kaptअकेले ही चाल चलेगा, दोनों kaptऔर annotationProcessorनिर्भरता रखने की कोई जरूरत नहीं है ।


1
kapt java files को भी संभाल सकता है, इसलिए उन दोनों का उपयोग करने की कोई आवश्यकता नहीं है, बस kapt ठीक है।
टेड

3

इस पंक्ति को हटाने का प्रयास करें:

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

आपकी build.gradle फ़ाइल की बिल्डस्क्रिप्ट / रिपॉजिटरी अनुभाग से।

जब मैंने वह लाइन जोड़ी, तो मुझे आपके द्वारा बताई गई त्रुटि मिल गई। जब मैंने इसे हटाया, अब नहीं। वह लाइन केवल allprojects / रिपॉजिटरी सेक्शन में होनी चाहिए।


1
मेरा मानना ​​है कि जेक व्हार्टन ने 9.0.0 स्नैपशॉट में पहले से ही AndroidX के लिए समर्थन जोड़ दिया है। देखें: github.com/JakeWharton/butterknife/issues/1280
nhoxbypass

2

Android.enableJetifier = gradle.properties में झूठा सेट करने का प्रयास करें। फिर एंड्रॉइड स्टूडियो में अमान्य कैश / पुनरारंभ करें ...


8
यह अनुशंसित नहीं है क्योंकि तीसरे पक्ष के पुस्तकालय हो सकते हैं जो अभी तक AndroidX में अपग्रेड नहीं किए गए थे! जैसा कि दस्तावेज़ीकरण कहता है: "android.enableJetifier: जब सही पर सेट होता है, तो एंड्रॉइड प्लगइन स्वचालित रूप से अपने बायनेरिज़ को फिर से लिखकर AndroidX का उपयोग करने के लिए मौजूदा तीसरे पक्ष के पुस्तकालयों को स्थानांतरित कर देता है। ध्वज डिफ़ॉल्ट रूप से गलत है यदि यह निर्दिष्ट नहीं है।" डेवलपर
गैबोर होर्वथ

1

फिक्स 4.2.0 में है, google gms जार के उच्च संस्करण का उपयोग करें।

बदलने की कोशिश करें:

classpath 'com.google.gms: Google-Services: 4.0.1'

इस संस्करण द्वारा:

classpath 'com.google.gms: Google-Services: 4.2.0'

आशा है कि यह काम करेगा ...


1
इसने मेरे लिए अद्यतन निर्भरताओं के साथ-साथ काम किया।
ग्लिस्सु

1

यदि आप डैगर या बटरकाइफ़ का उपयोग कर रहे हैं, तो कृपया इसे नवीनतम संस्करण में अपडेट करना सुनिश्चित करें। या, यदि आपके पास अपनी परियोजना में एक और इंजेक्शन पुस्तकालय है, तो आप इसे जांचने का प्रयास कर सकते हैं कि यह androidx का समर्थन करता है या नहीं।

मुझे एक ही त्रुटि मिली है, समस्या मेरे खंजर और तितलियों पर है। इसे नवीनतम संस्करण में अपडेट करके तय किया है।


1

Android संस्करण: 4.10.2

मैंने इस मुद्दे को तीन सरल चरणों के साथ हल किया: पहला मैंने इसे pubspec.yml में नीचे जोड़ा: (पहचान के दो स्थानों के साथ)

module:
  androidX: true 

इस दो लाइनों को gradle.properties में नीचे जोड़ रहा है, मेरे पास यह प्रोजेक्ट फ़ोल्डर में android / gradle.properties में है।

android.useAndroidX=true
android.enableJetifier=true

और इसके बाद मैंने टर्मिनल के साथ लिखा:

flutter clean

हो सकता है कि आपको डिवाइस को बंद करना होगा और फिर से चलाना होगा।



-1

मैंने इसे काहे को ताज़ा करके (इसे अमान्य करने के बजाय - जो स्थानीय इतिहास को भी साफ़ करता है) तय किया:

  1. gradle.properties फ़ाइल में, लाइन पर टिप्पणी करें। org.gradle.caching = true।
  2. स्वच्छ, पुनर्निर्माण।
  3. gradle.properties फ़ाइल में, लाइन org.gradle.caching = true पर टिप्पणी करें।
  4. स्वच्छ, पुनर्निर्माण।

बस!


-1

फ़ाइल पर जाएँ और अमान्य कैश पर क्लिक करें और पुनः आरंभ करें।

इसके बाद यह पुनरारंभ होता है तब आप अपने ऐप की build.gradleफ़ाइल में न्यूनतम एसडीके संस्करण बढ़ाते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.