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


137

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'

ここで何か進歩はありますか?
チャドビンガム

@ChadBinghamいいえ、それでも同じエラーになります
nhoxbypass

最後に解決策が見つかりました。ここで答えを見つけてください:stackoverflow.com/a/52308912/10224384
Nabster


5
@Nabsterねえねえねえねえねええええええええええええええええええええええええー私の質問は1か月前に投稿されましたが、この質問は20時間前に投稿されました!
nhoxbypass 2018

回答:


108

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

1)ファイル->キャッシュの無効化/再起動... ここに画像の説明を入力してください

2)ビルド->クリーンプロジェクト ここに画像の説明を入力してください


4
どういうわけか、リビルドのカップルのために働いたが、イムは、今再び...同じエラーを取得
アルCabone

2
私にとっては、Clean Projectで十分です
f4bo

1
また、Clean Projectは私に必要なすべてのものでした。ヒントをありがとう@ f4bo。
John Bentley、

1
できます。私はプロジェクトをきれいにするだけです。この回答は承認済みの回答として設定する必要があります。@nhoxbypass
azwar_akbar

30

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

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

これは私にとって問題でした。
Brill Pappin

うんそれを修正しました。私はUdacity Kotlinコースで問題に遭遇しました。それはゲームだと思います
Aswin Mohan

これが事実である理由を説明していただけますか?
Riz-waan

17

build.gradleファイルにJava 8サポートを追加すると、問題が修正されました

android {
     ...

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

リーンバックが見つかりません。テレビアプリを作成していると、リーンバックサポートv17に関するすべてが赤くなる
ラルフガブ

1
キャッシュを無効にしてAndroid Studioを再起動します
Dhaval Patel

3
いいえ、そうではありません。androidxパッケージを使用する必要があると思いました。
ラルフガブ

Java 8のサポートを追加すると、Android Studioはキャッシュを無効にするため、副作用と同じ結果が得られると
思い

14

あるように思わグライド問題。

同じエラーが発生し、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

これがあなたに役立つことを願っています!


9
このエラーは、Glideを依存関係にせずに私にも表示されます
Fabian Streitel '10


4

testInstrumentationRunnerを削除するとうまくいきました:

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

素晴らしいソリューション!私のために修正しました
beastlyCoder

4

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

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

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

あなたがにしている場合Kotlinのみ、プロジェクト、kapt依存関係だけでは動作するはずです。

編集
もう1つ覚えておくべきことは、すでにを使用している場合ですAndroidxAndroidxは素晴らしいリファクターですが、移行すると依存関係の一部が崩壊する可能性があります。メインストリームライブラリは既にに更新されていますがAndroidx、更新されていないライブラリもあります。
この編集の上の私の提供する解決策で問題が解決しない場合は、依存関係を調べて、それらAndroidxが同様に使用されていることを確認できます。

編集2
@Tedが述べたように、私は調査を戻しましたが、彼もファイルをkapt処理javaしています。kapt単独でうまくいくので、両方kaptannotationProcessor依存関係を維持する必要はありません。


1
kaptはjavaファイルも処理できるため、両方を使用する必要はありません。kaptのみが問題ありません。
テッド

3

この行を削除してみてください:

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

build.gradleファイルのbuildscript / repositoriesセクションから。

その行を追加したときに、あなたが説明したエラーが発生しました。私がそれを取り外したとき、もうありません。その行は、allprojects / repositoriesセクションにのみ存在する必要があります。


1
Jake Whartonはすでに9.0.0スナップショットでAndroidXのサポートを追加していると思います。参照:github.com/JakeWharton/butterknife/issues/1280
nhoxbypass

2

gradle.propertiesでandroid.enableJetifier = falseを設定してみてください。次に、Android Studioでキャッシュを無効化/再起動します...


8
AndroidXにまだアップグレードされていないサードパーティのライブラリが存在する可能性があるため、お勧めしません。ドキュメントに記載されているように、「android.enableJetifier:trueに設定すると、Androidプラグインは既存のサードパーティライブラリを自動的に移行して、バイナリを書き換えてAndroidXを使用します。フラグが指定されていない場合、フラグはデフォルトでfalseです。」developer.android.com/jetpack/androidx
ガーボルHorvathの

1

修正は4.2.0にあり、より高いバージョンのgoogle gms jarを使用します。

変更してみてください:

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

このバージョンで:

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

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


1
これは、依存関係の更新と一緒に機能しました。
glisu

1

ダガーやバターナイフを使用している場合は、必ず最新バージョンにアップデートしてください。または、プロジェクトで別のインジェクションライブラリを使用している場合は、androidxをサポートしているかどうかを確認できます。

私は同じエラーを見つけました、問題は私の短剣とバターナイフにあります。最新バージョンに更新して修正しました。


1

Androidバージョン:4.10.2

私はこの問題を3つの簡単な手順で解決しました:まずpubspec.ymlでこれの下に追加しました:(2つのIDスペースで)

module:
  androidX: true 

以下の2行を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ファイルでSDKの最小バージョンを増やします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.