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'
답변
답변
AndroidX Test dependencies로 build.gradle 파일을 업데이트 한 후 동일한 오류가 발생했습니다 . 이전 junit 종속성을 제거하는 것을 잊었습니다. 그래서 나를 위해 수정은 단순히 다음 종속성을 제거하는 것이 었습니다.
dependencies {
...
testImplementation 'junit:junit:4.12'
}
답변
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
}
}
답변
글라이드 문제 인 것 같습니다 .
나는 같은 오류가 있었고 방금 글라이드의 종속성을 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
희망이 당신을 도울 것입니다!
답변
기본 디렉토리로 이동하여 다음을 입력하여 수정했습니다. flutter clean
답변
testInstrumentationRunner 제거는 나를 위해 일했습니다 :
defaultConfig {
...
...
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
답변
당신이 사용하는 경우 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
종속성 만 작동합니다.
편집
이미 염두에 두어야 할 것은 이미 사용중인 경우 Androidx
입니다. Androidx
훌륭한 리 팩터이지만 마이그레이션 할 때 일부 종속성이 축소 될 수 있습니다. 주류 라이브러리는 이미로 업데이트 Androidx
되었지만 일부는 업데이트 되지 않았거나 업데이트 되지 않았습니다.
이 편집 위의 제공된 솔루션으로 문제가 해결되지 않으면 종속성을 살펴보고 해당 기능을 사용하는지 확인할 수 Androidx
있습니다.
편집 2
@ 테드가 언급했듯이, 나는 다시 조사했으며 그는 파일도 kapt
처리 java
합니다. kapt
혼자서도 트릭을 수행 kapt
하고 annotationProcessor
종속성 을 유지할 필요가 없습니다 .