59 votes

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 à 3.0, j'obtiens No static method getFont() erreur. Le projet sur lequel je travaille est sur 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
}

application 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 :

FATAL EXCEPTION : 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 ; dans la classe Landroid/support/v4/content/res/ResourcesCompat ; ou ses super classes (déclaration de Android.support.v4.content.res.ResourcesCompat' apparaît dans /data/app/com.ik.githubbrowser-YvwoGrxR8QaUEZ3IEqFVLQ==/split_lib_dependencies_apk.apk) à l'adresse Android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119) à l'adresse Android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208) à l'adresse Android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110) à l'adresse Android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) à l'adresse Android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81) à l'adresse Android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) à l'adresse Android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:67) at Android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753) at Android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:261) à l'adresse Android.support.v7.widget.ToolbarWidgetWrapper.setWindowTitle(ToolbarWidgetWrapper.java:243) à l'adresse Android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:621) à l'adresse Android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged(AppCompatDelegateImplV9.java:631) à l'adresse Android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328) à l'adresse Android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) à l'adresse Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) à l'adresse com.ik.githubbrowser.ui.search_user.SearchUserActivity.onCreate(SearchUserActivity.java:49) at Android.app.Activity.performCreate(Activity.java:6975) at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) à l'adresse Android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at Android.app.ActivityThread.-wrap11(Source inconnue:0) at Android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at Android.os.Handler.dispatchMessage(Handler.java:105) at Android.os.Looper.loop(Looper.java:164) at Android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Méthode native) at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.Android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

76voto

Nawrez Points 2326

Fixer res/values/styles.xml et Manifeste.xml comme suit : Cette solution a été testée et n'oubliez pas de nettoyer et de construire :

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 Faites en sorte que tous vos thèmes soient précédés de Base : styles.xml sera 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 comme demandé : Theme.AppCompat.Light.DarkActionBar est une sous-classe de la superclasse Base de toute façon. Ctrl+clic (Android Studio) dessus et vous serez amené à 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 non

   compileSdkVersion 26
buildToolsVersion '26.0.2'

16voto

Maysam R Points 387

c'est le 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'
}

7voto

Gent Berani Points 2905

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

5voto

mehmoodnisar125 Points 684

J'ai également eu ce problème et je l'ai résolu en définissant le fichier gradle de l'application.

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

compileSdkVersion 27

buildToolsVersion "27.0.3"

Ajout des bibliothèques de support de la version 27.1.1.

compilez "com.Android.support:recyclerview-v7:27.1.1".

compilez "com.Android.support:cardview-v7:27.1.1".

compilez "com.Android.support:appcompat-v7:27.1.1".

et ensuite synchroniser le projet.

C'est tout.

4voto

Pawar Shah Points 61

Assurez-vous que votre comileSdkVersion et votre targetSdkVersion sont identiques :

Comile and SDK Versions

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

Dependencies

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X