2017-10-26 8 views
8

Mam problem z moim projektem. Nie wiem, jak to naprawić. Po raz pierwszy go spotykam.Błąd pojawia się czcionka Landroid/content/Context; ILandroid/util/TypedValue

/UncaughtException: java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/codes.trongtin.h.besttrip-2/split_lib_dependencies_apk.apk:classes2.dex)

+0

Prawdopodobnie używasz niewłaściwej wersji biblioteki. –

+0

Ja też stoję w obliczu tego samego problemu Dzisiaj zaktualizowałem swoje studio na Androida od tamtego czasu Stoję w obliczu problemu –

+0

Miałem ten sam problem po przejściu do v27 biblioteki wsparcia ... wykonanie czystej kompilacji naprawiło problem dla mnie. –

Odpowiedz

0

Ponieważ używasz biblioteki wsparcia, Korzystanie ResourcesCompat

Typeface typeFace= ResourcesCompat.getFont(getActivity(),R.font.roboto); 

To rozwiąże problem.

Jeśli chcesz wesprzeć poziom API 26 i powyżej można użyć

Typeface typeface = getResources().getFont(R.font.myfont); 
+0

Dla mnie pokazujący problem w układzie xml po prostu setContentView (R.layout.main). jeśli usunąłem Textview z układu, to nie pokazuje żadnych problemów i działa poprawnie. Ale potrzebuję Textview, jak mogę rozwiązać ten problem? –

+0

Czy używasz Androida Studio 3.0? –

+0

W moim przypadku używam wersji 27.0.2. I nadal występuje – Godwin

20

Wydaje używasz zależności wsparcia. Po prostu sprawdź w swojej aplikacji, że twoja wersja narzędzi do budowania jest taka sama, jak wersje wsparcia.

Na przykład:

android { 
... 
    buildToolsVersion "26.0.2" 
... 
} 

i

dependencies { 
... 
    compile 'com.android.support:support-v4:26.0.2' 
    compile 'com.android.support:appcompat-v7:26.0.2' 
    compile 'com.android.support:recyclerview-v7:26.0.2' 
    compile 'com.android.support:support-v13:26.0.2' 
... 
} 

muszą mieć tę samą wersję.

To zadziałało dla mnie!

1

Ten błąd występuje, jeśli występuje niezgodność w wersji zależności od pomocy technicznej. 2 rzeczy do rozważenia, aby uniknąć tego błędu:

  1. upewnij się, że korzystasz z najnowszej wersji compileSdkVersion 27
  2. wszystkich bibliotek wsparcia powinny być dokładnie tej samej wersji
4

wystarczy zmienić complieSdkVersion, Zależności buildToolsVersion i appCompat.

 compileSdkVersion 27 
     buildToolsVersion '27.0.0' 

     implementation 'com.android.support:appcompat-v7:27.0.2' 
1

Podziękowania @ agustin-ruiz-linares za poprawną odpowiedź.

Dodam tutaj moją konfigurację wraz z bibliotekami Firebase i Glide, których używam na wszelki wypadek. Wystąpił błąd, dopóki nie porównałem wersji bibliotek wraz z wersjami buildToolsVersion i targetSdkVersions.

android { 
    compileSdkVersion 27 
    defaultConfig { 
     minSdkVersion 20 
     targetSdkVersion 27 
     buildToolsVersion "27.0.2" 
    } 
} 

dependencies { 
    implementation fileTree(dir: 'libs', include: ['*.jar']) 
    implementation 'com.android.support:appcompat-v7:27.0.2' 
    implementation 'com.android.support:design:27.0.2' 
    implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
    implementation 'com.google.firebase:firebase-database:11.8.0' 
    implementation 'com.google.firebase:firebase-storage:11.8.0' 
    implementation 'com.firebaseui:firebase-ui-database:3.2.1' 
    implementation 'com.github.bumptech.glide:glide:4.5.0' 
    annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0' 
    implementation 'com.android.support:support-v4:27.0.2' 
    testImplementation 'junit:junit:4.12' 
    androidTestImplementation 'com.android.support.test:runner:1.0.1' 
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' 
} 
Powiązane problemy