Używam Android Studio 3.2 Beta5 do migracji mojego projektu do AndroidX . Podczas przebudowy aplikacji otrzymuję następujące błędy:
BŁĄD: [TAG] Nie udało się rozwiązać zmiennej „$ {animal.sniffer.version}”
BŁĄD: [TAG] Nie udało się rozwiązać zmiennej „$ {junit.version}”
Pełne czyszczenie i odbudowa nie działa! Czy ktoś wie, jak to naprawić?
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'
Odpowiedzi:
Naprawiam to dwoma krokami
1) Plik -> Unieważnij pamięć podręczną / uruchom ponownie ...
2) Kompiluj -> Wyczyść projekt
źródło
Ten sam błąd wystąpił po zaktualizowaniu mojego pliku build.gradle z zależnościami AndroidX Test . Okazuje się, że zapomniałem usunąć starą zależność od junit. Więc dla mnie rozwiązaniem było po prostu usunięcie następującej zależności:
źródło
Dodanie obsługi Java 8 do pliku build.gradle rozwiązało problem
źródło
Wygląda na to, że Glide jest problemem.
Miałem ten sam błąd i właśnie zaktualizowałem zależności Glide do 4.8 i nie ma błędów kompilacji.
Kotlin:
Java:
Upewnij się, że masz włączone w swoim gradle.properties:
Źródło: https://github.com/bumptech/glide/issues/3124
Mam nadzieję, że to ci pomoże!
źródło
Naprawiono to, przechodząc do głównego katalogu i wpisując
flutter clean
źródło
Usuwanie testuInstrumentationRunner działał dla mnie:
źródło
Jeśli używasz
Kotlin
, problem wyskakuje, jeśli nie używaszkapt
wersji dla żadnego procesora adnotacji, którego używasz w projekcie.Jak @Vince wspomniał o tym przypadku
Glide
, może się to zdarzyć w przypadkuDagger2
,Butterknife
itp.Jeśli używasz obu
Java
iKotlin
będziesz musiał zachować obie zależności, w następujący sposób (były$glideVersion
to predefiniowana wersjaGlide
):Jeśli jesteś w
Kotlin
jedynym projekcie,kapt
zależność powinna działać samodzielnie.EDYCJA
Kolejną rzeczą, o której powinieneś pamiętać, jest to, że już używasz
Androidx
.Androidx
jest świetnym refaktorem, ale podczas migracji może spowodować załamanie niektórych zależności. Biblioteki głównego nurtu są już zaktualizowaneAndroidx
, jednak niektóre z nich nie są, a nawet nie.Jeśli problem nie zniknie po rozwiązaniu podanym przeze mnie powyżej tej edycji, możesz przyjrzeć się swoim zależnościom i upewnić się, że również używają
Androidx
.EDYCJA 2
Jak wspomniał @Ted, zbadałem wstecz i on ma rację
kapt
, obsługuje równieżjava
pliki.kapt
sam załatwi sprawę, nie trzeba zachowywać obukapt
iannotationProcessor
zależności.źródło
Spróbuj usunąć tę linię:
z sekcji buildscript / repositories w pliku build.gradle.
Kiedy dodałem tę linię, otrzymałem opisany przez ciebie błąd. Kiedy go usunąłem, już nie. Ta linia powinna znajdować się tylko w sekcji allprojects / repositories.
źródło
Spróbuj ustawić android.enableJetifier = false w gradle.properties. Następnie unieważnij pamięć podręczną / uruchom ponownie ... w Android Studio
źródło
Poprawka jest w 4.2.0, użyj wyższej wersji google gms jar.
Spróbuj zmienić:
według tej wersji:
Mam nadzieję, że to zadziała ...
źródło
Jeśli używasz sztyletu lub noża masłowego, zaktualizuj go do najnowszej wersji. Lub, jeśli masz inną bibliotekę iniekcyjną używaną w swoim projekcie, możesz spróbować ją sprawdzić, czy obsługuje androidx, czy nie.
Znalazłem ten sam błąd, problem dotyczy mojego sztyletu i noża do masła. Naprawiłem to, aktualizując go do najnowszej wersji.
źródło
Wersja Androida: 4.10.2
Rozwiązałem ten problem w trzech prostych krokach: Najpierw dodałem poniżej tego w pubspec.yml: (z dwiema spacjami identyfikacyjnymi)
Dodając te dwie linie poniżej w gradle.properties, mam to w android / gradle.properties w folderze projektu.
A potem napisałem z terminalem:
Może będziesz musiał zatrzymać urządzenie i uruchomić ponownie.
źródło
Naprawiłem to, aktualizując zależności Firebase do najnowszych.
źródło
Naprawiłem to, odświeżając cahche (zamiast go unieważniać - co również czyści lokalną historię):
Otóż to!
źródło
Przejdź do pliku i kliknij Unieważnij pamięci podręczne i uruchom ponownie.
Po ponownym uruchomieniu zwiększ minimalną wersję pakietu SDK w
build.gradle
pliku aplikacji .źródło