web-dev-qa-db-ja.com

AndroidXへの移行時に変数 '$ {animal.sniffer.version}'を解決できませんでした

私は 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
}

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

私は2つのステップでこれを直します

1)ファイル - >キャッシュの無効化/再起動... enter image description here

2)ビルド - >クリーンプロジェクト enter image description here

75
Beto

Java 8サポートを追加する / build.gradle file私には解決した問題

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

AndroidX Testの依存関係 でbuild.gradleファイルを更新した後に同じエラーが発生しました。私は古いjunitの依存関係を削除するのを忘れていました。だから私にとっては、修正は単に次の依存関係を削除することでした:

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

グライド 問題のようです。

同じエラーがあり、Glideの依存関係を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"

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.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ファイルのbuildscript/repositoriesセクションから。

その行を追加したとき、私はあなたが説明したエラーを得ました。私がそれを取り除いた時、もう終わりません。その行はallprojects/repositoriesセクションにだけあるべきです。

3
Raj

TestInstrumentationRunnerを削除しても問題ありませんでした。

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

Kotlinを使用している場合、プロジェクトで使用している注釈プロセッサにkaptバージョンを使用していないと問題がポップアップします。
@VinceがGlideの場合を述べたように、これはDagger2Butterknifeなどで起こり得ます。
JavaKotlinの両方を使用している場合は、次のように両方の依存関係を保持する必要があります($glideVersionGlideの事前定義バージョンです)。

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

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

もしあなたがKotlinのみのプロジェクトを行っているのであれば、kaptの依存関係は一人で動くはずです。

_編集_
もう1つ注意すべきことは、既にAndroidxを使用しているかどうかです。 Androidxは素晴らしいリファクタですが、移行すると依存関係の一部が崩壊する可能性があります。主流のライブラリはすでにAndroidxに更新されていますが、そのうちのいくつかは更新されておらず、更新されていません。
この編集の上で私が提供した解決策で問題が解決しない場合は、依存関係を調べて、それらがAndroidxも使用していることを確認できます。

編集2
@Tedが述べたように、私は戻って研究しました、そして、彼はkaptJavaファイルを同様に扱うことが正しいです。 kaptだけでうまくいくので、kaptannotationProcessorの両方の依存関係を維持する必要はありません。

2
pamobo0609

Gradle.propertiesでAndroid.enableJetifier = falseを設定してみてください。 Android Studioでキャッシュの無効化/再起動...

2
Minh Pham

修正は4.2.0にあります。Googlegms jarの上位バージョンを使用してください。

変更してみてください。

クラスパス 'com.google.gms:google-services:4.0.1'

このバージョンでは:

クラスパス 'com.google.gms:google-services:4.2.0'

これがうまくいくことを願っています...

1

ファイルに移動し、キャッシュの無効化をクリックして再起動します。

再起動後、アプリのbuild.gradleファイルの最小SDKバージョンを増やします。

0
Daniel Agyapong

Firebaseの依存関係を最新のものに更新することでこれを修正しました。

0
Gab Ledesma