AndroidX'e taşınırken '$ {animal.sniffer.version}' değişkeni çözülemedi


138

Ben kullanıyorum Android Studio 3.2 beta5 için projemi göç AndroidX . Uygulamamı yeniden oluşturduğumda şu hataları aldım:

HATA: [TAG] '$ {animal.sniffer.version}' değişkeni çözülemedi

HATA: [TAG] '$ {junit.version}' değişkeni çözülemedi

Tam temizlik ve yeniden çalışma işe yaramadı! Bunu nasıl düzeltebileceğiniz var mı?


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
}

Uygulamanın / 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'

Burada bir ilerleme var mı?
Chad Bingham

@ChadBingham Hayır, yine de aynı hata
nhoxbypass

Sonunda çözümü buldum, lütfen cevabı burada bulabilirsiniz: stackoverflow.com/a/52308912/10224384
Nabster


5
@Nabster hey hey Sorum bu ay 20 saat önce gönderilmişken bir ay önce gönderildi!
nhoxbypass

Yanıtlar:


108

Bunu iki adımla düzeltirim

1) Dosya -> Önbellekleri Geçersiz Kıl / yeniden başlat ... resim açıklamasını buraya girin

2) Yapı -> Temiz proje resim açıklamasını buraya girin


4
Her nasılsa yeniden birkaç çift için çalıştı ama yine aynı hatayı alıyorum ..
Al Cabone

2
benim için temiz proje yeterli oldu
f4bo

1
Ayrıca Clean Project benim için gerekli olan her şeydi. Bahşiş için @ f4bo teşekkürler.
John Bentley

1
İşe yarıyor. Sadece projeyi temizliyorum. Bu cevap kabul edilen cevap olarak ayarlanmalıdır. @nhoxbypass
azwar_akbar

30

Build.gradle dosyamı AndroidX Test bağımlılıklarıyla güncelledikten sonra aynı hatayı aldım . Görünüşe göre eski junit bağımlılığını kaldırmayı unuttum. Yani benim için düzeltme sadece aşağıdaki bağımlılığı kaldırmaktı:

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

Benim için sorun buydu.
Brill Pappin

Evet düzeltti. Ben Udacity KOTLIN ile sorunu koştu Tabii o oyunu tahmin
Aswin Mohan

Bunun neden böyle olduğunu açıklar mısınız?
Riz-waan

17

Ekleme Java 8 desteği için build.gradle dosyası benim için sorun sabit

android {
     ...

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

leanback bulunamadı. im bir TV uygulaması inşa ve leanback destek v17 ile ilgili her şey kırmızı gider
ralphgabb

1
önbellekleri geçersiz kılar ve android stüdyosunu yeniden
başlatır

3
hayır değil, androidx paketini kullanman gerektiğini düşündüm.
ralphgabb

Java 8 desteği ekleyerek Android Studio'yu önbelleklerini geçersiz kılmaya zorlar ve böylece bir yan etki ile aynı sonucu elde eder ... Hmmmm, tamam ...
varun

14

Sorunu süzmek gibi görünüyor .

Aynı hatayla karşılaştım ve sadece Glide'ın bağımlılıklarını 4.8'e güncelledim ve derleme hatası yok.

Kotlin:

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

Java:

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

Gradle'ınızda etkinleştirdiğinizden emin olun. Properties:

android.useAndroidX=true
android.enableJetifier=true

Kaynak: https://github.com/bumptech/glide/issues/3124

Bu size yardımcı olacağını umuyoruz!


9
Bu hata da bir bağımlılık olarak Glide olmadan bana geliyor
Fabian Streitel


4

TestInstrumentationRunner kaldırılması benim için çalıştı:

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

harika bir çözüm! Benim için düzeltildi
beastlyCoder

4

Kullanıyorsanız Kotlin, kaptsürümü projede kullandığınız ek açıklama işlemcisi için kullanmazsanız sorun açılır .
@Vince ile davayı belirtildiği gibi Glidebu ile olabilirdi, Dagger2, Butterknifevb
her iki kullanıyorsanız Javave Kotlinaşağıdaki gibi, her iki bağımlılıkları tutmak gerekir (were $glideVersionönceden tanımlanmış bir versiyonudur Glide):

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

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

Eğer bir işlem yapıyorsanız Kotlinsadece proje, kaptbağımlılık yalnız çalışmalıdır.

DÜZENLEME
Aklınızda bulundurmanız gereken başka bir şey zaten kullanıyorsanız Androidx. Androidxharika bir refaktördür, ancak taşınırken bazı bağımlılıklarınızın çökmesine neden olabilir. Ana kütüphaneler halihazırda güncellenmiştir Androidx, ancak bazıları kütüphanede güncellenmemiştir ve olmayacaktır.
Sorun, bu düzenlemenin üzerindeki sağlanan çözümümle birlikte giderilmezse, bağımlılıklarınıza bir göz atabilir ve bunların da kullanıldığından emin olabilirsiniz Androidx.

DÜZENLEME 2
As @Ted geri araştırılmış ve o haklı, söz kaptkolu yapar javasıra dosyaları. kapttek başına hile yapacak, ikisini kaptve annotationProcessorbağımlılıkları tutmaya gerek yok .


1
kapt ayrıca java dosyalarını işleyebilir, bu yüzden ikisini de kullanmaya gerek yok, sadece kapt tamam.
Ted

3

Bu satırı kaldırmayı deneyin:

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

build.gradle dosyanızın buildscript / repositories bölümünden.

Bu satırı eklediğimde, açıkladığınız hatayı aldım. Çıkardığım zaman, artık değil. Bu satır yalnızca tüm projeler / depolar bölümünde olmalıdır.


1
Jake Wharton'ın 9.0.0 anlık görüntüsünde AndroidX için destek eklediğine inanıyorum. Bakınız: github.com/JakeWharton/butterknife/issues/1280
nhoxbypass

2

Gradle.properties dosyasında android.enableJetifier = false ayarını deneyin. Ardından Android Studio'da Önbellekleri Geçersiz Kıl / Yeniden Başlat ...


8
Henüz AndroidX'e yükseltilmemiş üçüncü taraf kütüphaneler olabileceği için önerilmez! Belgelerin dediği gibi: "android.enableJetifier: true değerine ayarlandığında, Android eklentisi mevcut üçüncü taraf kütüphanelerini ikili dosyalarını yeniden yazarak AndroidX'i kullanmak için otomatik olarak geçirir. Belirtilmemişse bayrak varsayılan olarak yanlıştır." developer.android.com/jetpack/androidx
Gábor Horváth

1

Düzeltme 4.2.0'da, google gms jar'ün daha yüksek sürümünü kullanın.

Değiştirmeyi deneyin:

'com.google.gms: google-services: 4.0.1' sınıf yolu

bu sürüme göre:

'com.google.gms: google-services: 4.2.0' sınıf yolu

Umarım bu işe yarar ...


1
Bu güncelleme bağımlılıkları ile birlikte benim için çalıştı.
glisu

1

Hançer veya butterknife kullanıyorsanız, lütfen en son sürüme güncellediğinizden emin olun. Ya da projenizde kullanılan başka bir enjeksiyon kütüphaneniz varsa, androidx'i destekleyip desteklemediğini kontrol etmeyi deneyebilirsiniz.

Aynı hatayı buldum, sorun hançerimde ve butterknife'ımda. En yeni sürüme güncelleyerek düzeltti.


1

Android sürümü: 4.10.2

Bu sorunu üç basit adımla çözdüm: İlk önce pubspec.yml'de bunun altına ekledim: (iki boşluk ile)

module:
  androidX: true 

Gradle.properties içinde bu iki satır ekleyerek, proje klasöründe android / gradle.properties bu var.

android.useAndroidX=true
android.enableJetifier=true

Ve bundan sonra terminalle yazdım:

flutter clean

Belki cihazı durdurup tekrar çalıştırmanız gerekir.


0

Firebase bağımlılıklarını en son sürüme güncelleyerek bunu düzelttim.


-1

Cahch'i yenileyerek düzelttim (Geçersiz kılmak yerine - yerel tarihi de temizler):

  1. gradle.properties dosyasında org.gradle.caching = true satırını yorumlayın.
  2. Temizleyin, yeniden kurun.
  3. gradle.properties dosyasında org.gradle.caching = true satırının yorumunu kaldırın.
  4. Temizleyin, yeniden kurun.

Bu kadar!


-1

Dosyaya gidin ve Önbellekleri geçersiz kıl'a tıklayın ve yeniden başlatın.

Yeniden başladıktan sonra, uygulamanızın build.gradledosyasındaki minimum SDK sürümünü artırırsınız .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.