web-dev-qa-db-fra.com

java.lang.NoSuchMethodError: Aucune méthode statique getFont (Landroid/content/Context; ILandroid/util/TypedValue; ILandroid/widget/TextView;)

Après avoir mis à jour mon Android Studio vers la version 3.0, l'erreur No static method getFont() s'affiche. Le projet sur lequel je travaille est github, https://github.com/ik024/GithubBrowser

// Top-level build file where you can add configuration options common 
to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
dependencies {
    classpath 'com.Android.tools.build:gradle:3.0.0'
    classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
}
}

allprojects {
repositories {
    jcenter()
    maven { url 'https://maven.google.com' }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}

ext{
    Arch_version = "1.0.0-alpha9"
    support_version = "26.0.2"
    dagger_version = "2.11"
    junit_version = "4.12"
    espresso_version = "2.2.2"
    retrofit_version = "2.3.0"
    mockwebserver_version = "3.8.0"
    Apache_commons_version = "2.5"
    mockito_version = "1.10.19"
    constraint_layout_version = "1.0.2"
    timber_version = "4.5.1"
    butterknife_version = "9.0.0-SNAPSHOT"
    rxbinding_version = "2.0.0"
    retrofit_version = "2.3.0"
    okhttp_version = "3.6.0"
    rxjava2_adapter_version = "1.0.0"
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

app gradle

apply plugin: 'com.Android.application'
apply plugin: 'com.jakewharton.butterknife'

Android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
    applicationId "com.ik.githubbrowser"
    minSdkVersion 17
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {
    exclude 'META-INF/rxjava.properties'
}

testOptions {
    unitTests.returnDefaultValues = true
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

compile "com.Android.support.constraint:constraint-layout:$constraint_layout_version"

compile "com.Android.support:appcompat-v7:$support_version"
compile "com.Android.support:recyclerview-v7:$support_version"
compile "com.Android.support:cardview-v7:$support_version"
compile "com.Android.support:design:$support_version"
compile "com.Android.support:support-v4:$support_version"

compile "Android.Arch.persistence.room:runtime:$Arch_version"
compile "Android.Arch.lifecycle:runtime:$Arch_version"
compile "Android.Arch.lifecycle:extensions:$Arch_version"
compile "Android.Arch.persistence.room:rxjava2:$Arch_version"

compile "com.squareup.retrofit2:retrofit:$retrofit_version"
compile "com.squareup.retrofit2:converter-gson:$retrofit_version"
compile "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
compile "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:$rxjava2_adapter_version"

compile "com.squareup.okhttp3:okhttp:$okhttp_version"
compile "com.squareup.okhttp3:logging-interceptor:$okhttp_version"


compile "com.jakewharton.timber:timber:$timber_version"
compile "com.jakewharton:butterknife:$butterknife_version"
compile "com.jakewharton.rxbinding2:rxbinding:$rxbinding_version"

compile "com.google.dagger:dagger:$dagger_version"
compile "com.google.dagger:dagger-Android:$dagger_version"
compile "com.google.dagger:dagger-Android-support:$dagger_version"

testCompile "junit:junit:$junit_version"
testCompile "com.squareup.okhttp3:mockwebserver:$mockwebserver_version"
testCompile("Android.Arch.core:core-testing:$Arch_version", {
    exclude group: 'com.Android.support', module: 'support-compat'
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.Android.support', module: 'support-core-utils'
})

androidTestCompile "com.Android.support:appcompat-v7:$support_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.Android.support', module: 'support-fragment'
    exclude group: 'com.Android.support', module: 'support-core-ui'
}

androidTestCompile "com.Android.support:recyclerview-v7:$support_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.Android.support', module: 'support-fragment'
    exclude group: 'com.Android.support', module: 'support-core-ui'
}

androidTestCompile "com.Android.support:support-v4:$support_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.Android.support', module: 'support-fragment'
    exclude group: 'com.Android.support', module: 'support-core-ui'
}

androidTestCompile "com.Android.support:design:$support_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.Android.support', module: 'support-fragment'
    exclude group: 'com.Android.support', module: 'support-core-ui'
}

androidTestCompile("com.Android.support.test.espresso:espresso-core:$espresso_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.google.code.findbugs', module: 'jsr305'
})

androidTestCompile("com.Android.support.test.espresso:espresso-contrib:$espresso_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.google.code.findbugs', module: 'jsr305'
    exclude group: 'com.Android.support', module: 'support-fragment'
    exclude group: 'com.Android.support', module: 'support-core-ui'
})

androidTestCompile("Android.Arch.core:core-testing:$Arch_version", {
    exclude group: 'com.Android.support', module: 'support-annotations'
})

androidTestCompile 'org.mockito:mockito-Android:2.7.15', {
    exclude group: 'com.Android.support', module: 'support-annotations'
}

annotationProcessor "com.google.dagger:dagger-Android-processor:$dagger_version"
annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$Arch_version"
annotationProcessor "Android.Arch.lifecycle:compiler:$Arch_version"
annotationProcessor "com.jakewharton:butterknife-compiler:$butterknife_version"


compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'

}

Erreur:

EXCEPTION FATALE: processus principal: com.ik.githubbrowser, PID: 4248 Java.lang.NoSuchMethodError: Aucune méthode statique getFont (Landroid/content/Context; ILandroid/util/TypedValue; ILandroid/widget/TextView;) Landroid/graphics/Typeface; en classe Landroid/support/v4/content/res/ResourcesCompat; ou son super classes (déclaration de 'Android.support.v4.content.res.ResourcesCompat' apparaît dans à Android.support.v7.widget.TintTypedArray.getFont (TintTypedArray.Java:119) à Android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle (AppCompatTextHelper.Java:208) à Android.support.v7.widget.AppCompatTextHelper.loadFromAttributes (AppCompatTextHelper.Java:110) à Android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes (AppCompatTextHelperV17.Java:38) à Android.support.v7.widget.AppCompatTextView. (AppCompatTextView.Java:81) à Android.support.v7.widget.AppCompatTextView. (AppCompatTextView.Java:71) à Android.support.v7.widget.AppCompatTextView. (AppCompatTextView.Java:67) sur Android.support.v7.widget.Toolbar.setTitle (Toolbar.Java:753) sur Android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt (ToolbarWidgetWrapper.Java:261) à Android.support.v7.widget.ToolbarWidgetWrapper.setWindowTitle (ToolbarWidgetWrapper.Java:243) à Android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle (ActionBarOverlayLayout.Java:621) à Android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged (AppCompatDelegateImplV9.Java:631) à Android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor (AppCompatDelegateImplV9.Java:328) à Android.support.v7.app.AppCompatDelegateImplV9.setContentView (AppCompatDelegateImplV9.Java:284) à Android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.Java:139) à com.ik.githubbrowser.ui.search_user.SearchUserActivity.onCreate (SearchUserActivity.Java:49) sur Android.app.Activity.performCreate (Activity.Java:6975) sur Android.app.Instrumentation.callActivityOnCreate (Instrumentation.Java:1213) à Android.app.ActivityThread.performLaunchActivity (ActivityThread.Java:2770) à Android.app.ActivityThread.handleLaunchActivity (ActivityThread.Java:2892) sur Android.app.ActivityThread.-wrap11 (Source inconnue: 0) à Android.app.ActivityThread $ H.handleMessage (ActivityThread.Java:1593) sur Android.os.Handler.dispatchMessage (Handler.Java:105) sur Android.os.Looper.loop (Looper.Java:164) à l'adresse Android.app.ActivityThread.main (ActivityThread.Java:6541) à Java.lang.reflect.Method.invoke (Méthode native) à com.Android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.Java:240) sur com.Android.internal.os.ZygoteInit.main (ZygoteInit.Java:767)

57
ik024

Corrigezres/values ​​/ styles.xmletManifest.xmllike so: Cette solution a été testée et n'oubliez pas de nettoyer et compiler:

1.Manifest.xml

changer le thème de HomeActivity en:

        <activity
        Android:name=".ui.home.HomeActivity"
        Android:theme="@style/Base.Theme.AppCompat.Light" />
    <activity Android:name=".BaseActivity"></activity>

2. res/values ​​/ styles.xml Tous vos thèmes précédés de Base: styles.xml seront comme ceci:

<resources>

<!-- Base application theme. -->
<!--<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">-->

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">


<!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar" parent="Base.Theme.AppCompat.Light">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="Base.ThemeOverlay.AppCompat.Light" />

Explication détaillée à la demande: Theme.AppCompat.Light.DarkActionBar est une sous-classe de la superclasse Base de toute façon. Ctrl + clic (Android Studio) dessus et vous serez redirigé vers la source:

<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />

3. GithubBrowser-Master.gradle

faire support_version = "27.0.0" et non support_version = "26.0.2

4.app.gradle:

compileSdkVersion 27
    buildToolsVersion '27.0.0'

et pas 

   compileSdkVersion 26
buildToolsVersion '26.0.2'
73
Nawrez

c'est un travail pour moi:

    buildToolsVersion "27.0.3"

et

dependencies {
compile 'com.Android.support:appcompat-v7:27.0.0'
compile 'com.Android.support:design:27.0.0'
compile 'com.Android.support:support-v4:27.0.0'
compile 'com.Android.support:support-v13:27.0.0'
}
16
Maysam R

Dans mon cas, j’utilisais Android-KTX: implementation 'androidx.core:core-ktx:0.1' dans le projet Kotlin et c’était la cause de l’erreur. Je viens de le retirer de build.gradle en tant que dépendance.

7
Gent Berani

Assurez-vous que votre comileSdkVersion et targetSdkVersion doivent être identiques: 

 Comile and SDK Versions

mettez également à jour vos dépendances avec la dernière version, synchronisez le projet et exécutez-le. cela m'a aidé à résoudre le problème.

 Dependencies

4
Pawar Shah

J'ai eu le même problème, corrigé avec juste changer l'appcompat et design et recyclerview à ces valeurs

implementation 'com.Android.support:appcompat-v7:27.0.2'
implementation 'com.Android.support:design:27.0.2'
implementation 'com.Android.support:recyclerview-v7:27.0.2'

et synchroniser à nouveau

4
MohammadL

J'ai également eu ce problème et résoudre ce problème en définissant le fichier Gradle d'application.

Changez votre version de compilation de sdk en 27 et buildToolsVersion en 27.0.3

compileSdkVersion 27

buildToolsVersion "27.0.3"

Ajouter des bibliothèques de support de version 27.1.1.

compiler 'com.Android.support:recyclerview-v7:27.1.1'

compiler 'com.Android.support:cardview-v7:27.1.1'

compiler 'com.Android.support:appcompat-v7:27.1.1'

puis synchroniser le projet.

C'est tout.

4
mehmoodnisar125

CompileSdkVersion 26 donne parfois cette erreur. Pour le résoudre, veuillez mettre à jour compileSdkVersion et targetSdkVersion vers 27 dans le fichier app.gradle . Modifiez également les dépendances correspondantes dans la section des dépendances. Vous n'avez pas besoin de spécifier buildToolsVersion pour cela.

2
DNB

la version de toutes les dépendances doit être identique à compileSdkVersion. donc ci-dessous le code dans build.gradle (module) travail pour moi.

Android {

     compileSdkVersion 26

 ...

dependencies {

implementation 'com.Android.support:appcompat-v7:26.0.2'

implementation 'com.Android.support:recyclerview-v7:26.0.2'

implementation 'com.Android.support:cardview-v7:26.0.2'


...
2
AhuraMazda

Dans mon cas, ce problème venait de la combinaison de Glide et Bibliothèque Appcompat (les versions ne se supportent pas).

Voici donc ce qui a fonctionné pour moi (Au niveau de l'application, build.gradle) -

implementation 'com.Android.support:appcompat-v7:27.0.2'
implementation 'com.github.bumptech.glide:glide:4.8.0'

J'espère que ça va aider quelqu'un.

1
B.shruti

La solution est très simple ... il suffit de changer l'outil de génération en 27.0.2 Et tous prennent en charge la version de bibliothèque en 27.0.2 Bingo..error résolu

1
Mihir Joshi

Il suffit de changer le thème de l’activité dans manifest comme suit:

Android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"
1
Khalid Ali

J'ai essayé de trouver une réponse à cette question, mais dans mon cas, c'était ma configuration:

Android {
    compileSdkVersion 26
     defaultConfig {
        applicationId "com.jorgesys.gifanimated"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

Pour résoudre ce problème, j’ajoute simplement la définition de buildToolsVersion et cela fonctionne!

   buildToolsVersion "26.0.2"

Il est probablement nécessaire que notre version des outils de génération soit la même que la version des bibliothèques de support.

0
Elenasys

Chaque fois que cette erreur se produit, il suffit de mettre à jour buildtools et de gérer les dépendances avec une version plus récente. Ce problème sera résolu. Gardez à l'esprit que toutes les dépendances de support doivent avoir la même version

buildToolsVersion '28.0.2'
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:recyclerview-v7:28.0.0'
0
Gibs

télécharger gradle!

chemin de classe 'com.Android.tools.build:gradle:3.3.1'

0
Fredy sanchez .m

Pour moi, le problème était dû à l’une de mes dépendances d’application, qui utilisait une version de la bibliothèque de support Android supérieure à celle dont je dépendais. Si vous ne souhaitez pas mettre à jour la dernière version pour le moment, vous pouvez forcer l'utilisation de votre version de la bibliothèque.

Pour voir quelle dépendance utilise la version la plus récente, vous pouvez exécuter: ./gradlew app:dependencies et rechercher les occurrences com.Android.support qui déclarent une version différente de celle que vous utilisez. Par exemple:

./gradlew app:dependencies \
  | grep com.Android.support \
  | grep -vE "constraint-layout|support.test|multidex|->|26.1.0"

devrait vous montrer les dépendances qui utilisent une version différente de 26.1.0. (Android Studio devrait également vous donner un exemple de conflit de dépendance dans une info-bulle sur certaines dépendances com.support.Android répertoriées dans votre build.gradle)

Dans mon cas, c'était com.Android.support:support-compat:27.1.0 (et support-annotations), alors exécutez:

./gradlew app:dependencyInsight \
  --configuration <YOUR_BUILD_VARIANT>CompileClasspath
  --dependency support-compat

Pour voir quelle bibliothèque dépend de 27.1.0 version de support-compat. (Remplacez <YOUR_BUILD_VARIANT> par l’une de vos variantes de construction, par exemple debug).

Dans mon cas c'était:

com.Android.support:support-compat:27.1.0 (conflict resolution)
\--- androidx.core:core-ktx:0.3
     \--- devDebugCompileClasspath

et en remplaçant:

implementation 'androidx.core:core-ktx:0.3'

avec:

implementation ('androidx.core:core-ktx:0.3') {
    exclude module: 'support-annotations'
    exclude module: 'support-compat'
}

résolu le problème pour moi.

0
arekolek

Voici ma réponse à cela, c'est peut-être un scénario différent mais j'ai eu cette erreur.

Je créais une application de lecteur de musique et j'avais ajouté la bibliothèque suivante dans mon fichier de classement des applications.

implementation 'com.google.Android.exoplayer:exoplayer:2.8.0'

Je suivais ce tutorial pour intégrer ExoPlayer à mon application. J'ai changé cette version de bibliothèque de 2.8.0 à 2.6.0 et cela a bien fonctionné. 

J'espère que ça aidera quelqu'un.

0
Harry .Naeem