AndroidX로 마이그레이션 할 때 변수 '$ {animal.sniffer.version}'을 (를) 해결하지 못했습니다.


138

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 hey hey 내 질문은 한달 전에 게시되었습니다.
nhoxbypass

답변:


108

두 단계로이 문제를 해결합니다

1) 파일-> 캐시 무효화 / 재시작 ... 여기에 이미지 설명을 입력하십시오

2) 빌드-> 프로젝트 정리 여기에 이미지 설명을 입력하십시오


4
어떻게 든 몇 번의 재건을 위해 일했지만 지금 같은 오류가 다시 발생합니다 ..
Al Cabone

2
나를 위해 클린 프로젝트는 충분했습니다
f4bo

1
또한 Clean Project는 나에게 필요한 모든 것입니다. 팁 주셔서 감사합니다 @ f4bo.
존 벤틀리

1
효과가있다. 나는 단지 프로젝트를 청소합니다. 이 답변은 허용되는 답변으로 설정해야합니다. @nhoxbypass
azwar_akbar

30

AndroidX Test dependencies로 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
     }
}

린백을 찾을 수 없습니다. 메신저 TV 앱을 구축하고는 린백 지원 V17에 대한 어떤 빨간색 간다
ralphgabb

1
캐시 무효화 및 안드로이드 스튜디오 재시작
Dhaval Patel

3
아니, 아니 androidx 패키지를 사용해야한다고 생각했다.
ralphgabb

Java 8 지원을 추가하면 Android Studio가 캐시를 무효화하고 부작용과 동일한 결과를 얻습니다. Hmmmm,
좋습니다

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
이 오류는 또한 글라이드를 의존하지 않고 나에게 나타납니다
Fabian Streitel


4

testInstrumentationRunner 제거는 나를 위해 일했습니다 :

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

환상적인 솔루션! 나를 위해
고쳐

4

당신이 사용하는 경우 Kotlin사용하지 않는 경우, 문제가 팝업됩니다 kapt프로젝트에서 사용하는 주석 프로세서 버전.
@Vince과 함께 사건을 언급 한 바와 같이 Glide이 일어날 수, Dagger2, Butterknife, 등
이 모두를 사용하는 경우 JavaKotlin다음과 같이 두 종속성을 유지해야합니다 (있었다 것은 $glideVersion미리 정의 된 버전입니다 Glide) :

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

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

당신은에있는 경우 Kotlin에만 프로젝트의 kapt종속성 만 작동합니다.

편집
이미 염두에 두어야 할 것은 이미 사용중인 경우 Androidx입니다. Androidx훌륭한 리 팩터이지만 마이그레이션 할 때 일부 종속성이 축소 될 수 있습니다. 주류 라이브러리는 이미로 업데이트 Androidx되었지만 일부는 업데이트 되지 않았거나 업데이트 되지 않았습니다.
이 편집 위의 제공된 솔루션으로 문제가 해결되지 않으면 종속성을 살펴보고 해당 기능을 사용하는지 확인할 수 Androidx있습니다.

편집 2
@ 테드가 언급했듯이, 나는 다시 조사했으며 그는 파일도 kapt처리 java합니다. kapt혼자서도 트릭을 수행 kapt하고 annotationProcessor종속성 을 유지할 필요가 없습니다 .


1
kapt는 Java 파일도 처리 할 수 ​​있으므로 둘 다 사용할 필요는 없습니다. 단지 kapt 만 있으면됩니다.
Ted

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
Gábor Horváth

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 2016 년

1

단검이나 버터 나이프를 사용하는 경우 최신 버전으로 업데이트하십시오. 또는 프로젝트에 다른 주입 라이브러리가 사용 된 경우 androidx 또는 no를 지원하는지 확인하십시오.

동일한 오류를 발견했습니다. 문제는 단검과 버터 나이프에 있습니다. 최신 버전으로 업데이트하여 수정했습니다.


1

안드로이드 버전 : 4.10.2

세 가지 간단한 단계 로이 문제를 해결했습니다. 먼저 pubspec.yml에서 아래에 추가했습니다. (두 개의 식별 공간)

module:
  androidX: true 

gradle.properties에 아래 두 줄을 추가하면 프로젝트 폴더의 android / gradle.properties에 있습니다.

android.useAndroidX=true
android.enableJetifier=true

그리고이 후에 나는 터미널로 썼습니다 :

flutter clean

장치를 중지했다가 다시 실행해야 할 수도 있습니다.



-1

나는 cahche를 새로 고침하여 문제를 해결했습니다 (무효 대신-로컬 기록을 지 웁니다).

  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.