Подтвердить что ты не робот

Java.lang.NoSuchMethodError: Нет статического метода getFont (Landroid/content/Context; ILandroid/util/TypedValue; ILandroid/widget/TextView;)

После того, как я обновил свою Android-студию до версии 3.0, я получаю No static method getFont(). Проект, над которым я работаю, находится на 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
}

приложение 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'

}

Ошибка:

FATAL EXCEPTION: main Процесс: com.ik.githubbrowser, PID: 4248 java.lang.NoSuchMethodError: нет статического метода getFont (Landroid/content/Context; ILandroid/util/TypedValue; ILandroid/widget/TextView;) Landroid/graphics/Typeface; в классе Landroid/support/v4/content/res/ResourcesCompat; или его суперклассы (объявление "android.support.v4.content.res.ResourcesCompat" появляется в /data/app/com.ik.githubbrowser-YvwoGrxR8QaUEZ3IEqFVLQ==/split_lib_dependencies_apk.apk) в файле 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) в файле android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753) в файле android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:261) в файле android.support.v7.widget.ToolbarWidgetWrapper.set WindowTitle (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) at com.ik.githubbrowser.ui.search_user.SearchUserActivity.onCreate(SearchUserActivity.java:49) в android.app.Activity.performCreate(Activity.java:6975) в android.app.Instrumentation.callActivityOnCreate(Instrumentation. java: 1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) в android.app.ActivityThread. -wrap11 (Неизвестный источник: 0) at android.app.ActivityThread $ H .handleMessage(ActivityThread.java:1593) на android.os.Handler.dispatchMessage(Handler.java:105) на android.os.Looper.loop(Looper.java:164) на android.app.ActivityThread.main(ActivityThread. java: 6541) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240) в com.android.internal.os.ZygoteInit. Основной (ZygoteInit.java:767)

4b9b3361

Ответ 1

Исправьте res/values /styles.xml и Manifest.xml следующим образом: это решение протестировано, и не забудьте очистить и собрать:

1.Manifest.xml

изменить тему HomeActivity на:

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

2. res/values /styles.xml Сделайте так, чтобы все ваши темы начинались с Base: styles.xml будет так:

<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" />

Подробное объяснение по запросу: Theme.AppCompat.Light.DarkActionBar в любом случае является подклассом Base суперкласса. Ctrl + клик (Android Studio) на нем, и вы попадете к источнику:

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

3. GithubBrowser-Master.gradle

make support_version = "27.0.0" а не support_version = "26.0.2

4.app.gradle:

compileSdkVersion 27
    buildToolsVersion '27.0.0'

и не

   compileSdkVersion 26
buildToolsVersion '26.0.2'

Ответ 2

это работа для меня:

    buildToolsVersion "27.0.3"

и

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'
}

Ответ 3

Кажется, вы используете зависимости поддержки. Просто запустите приложение gradle, что версия вашего инструмента сборки совпадает с версиями поддержки.

Например:

android {
    buildToolsVersion "26.0.2"

}

и

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'

}

Они должны быть одинаковой версии... Проверьте уровень вашего приложения gradle на ошибку. Работал для меня... попробуйте

Ответ 4

В моем случае я использовал Android-KTX: implementation 'androidx.core:core-ktx:0.1' в проекте Kotlin, и это стало причиной ошибки. Я просто удалил его из build.gradle как зависимость.

Ответ 5

Я также получил эту проблему и разрешил эту проблему, установив файл приложения gradle.

Измените версию скомпилированного sdk на 27 и buildToolsVersion на 27.0.3

compileSdkVersion 27

buildToolsVersion "27.0.3"

Добавьте библиотеки поддержки версий 27.1.1.

compile 'com.android.support:recyclerview-v7:27.1.1'

компилировать 'com.android.support:cardview-v7:27.1.1'

compile 'com.android.support:appcompat-v7:27.1.1'

а затем синхронизировать проект.

Это оно.

Ответ 6

Убедитесь, что ваша компиляцияSdkVersion и targetSdkVersion должны быть одинаковыми:

Comile and SDK Versions

а также обновить свои зависимости до последней версии и синхронизировать проект и запустить его. это помогло мне решить эту проблему.

Dependencies

Ответ 7

У меня была такая же проблема, исправлена с изменением appcompat и дизайна и recyclerview к этим valeus:

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'

и синхронизация снова

Ответ 8

Иногда compileSdkVersion 26 дает эту ошибку. Чтобы решить эту проблему, обновите файл compileSdkVersion и targetSdkVersion до 27 в файле app.gradle. Также измените соответствующие зависимости в разделе зависимостей. Для этого вам не нужно указывать buildToolsVersion.

Ответ 9

версия all dependecies должна быть одинаковой с compileSdkVersion. поэтому для меня работает код в build.gradle(module).

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'


...

Ответ 10

В моем случае эта проблема возникла из-за комбинации библиотек Glide и Appcompat (версии не поддерживают друг друга).

Итак, вот что сработало для меня (на уровне приложения build.gradle) -

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

Надеюсь, это кому-нибудь поможет.

Ответ 11

[Переполнение стека не позволит мне прокомментировать ответ ХаджиХелиля Навраза.]

  • В моем проекте нет файла с именем Manifest.xml. У меня есть файл с именем AndroidManifest.xml, и я предполагаю, что это тот самый файл, который он имел в виду.

  • Я не могу найти файл с именем GithubBrowser-Master.gradle, но, возможно, это потому, что мой проект не связан с Github.

  • Я мог найти файл app.gradle, выполнив текстовый поиск для "26". В Android Studio больше нет браузера файлов?!

Я не вижу buildToolsVersion в моем файле app.gradle. Я обновил

compileSdkVersion 27
    targetSdkVersion 27

Все еще не работает.

[Путь к работе, Google!]

Ответ 12

Просто измените тему активности в манифесте на любой из них:

android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"

Ответ 13

Решение действительно просто. Просто нужно изменить инструмент построения до 27.0.2. И все поддерживает версию библиотеки до 27.0.2. Bingo..error

Ответ 14

Я попытался найти ответ в этом вопросе, но в моем случае это была моя конфигурация:

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'
        }
    }
}

Чтобы решить эту проблему, я просто добавлю определение buildToolsVersion, и он работает!

   buildToolsVersion "26.0.2"

Вероятно, необходимо, чтобы наша версия инструментов сборки была такой же, как версия библиотек поддержки.

Ответ 15

Для меня проблема была вызвана одной из зависимостей моего приложения, использующей более высокую версию библиотеки поддержки Android, чем та, на которую я был в зависимости. Если вы еще не хотите обновляться до последней версии, вы можете принудительно использовать свою версию библиотеки.

Чтобы узнать, какая зависимость использует более новую версию, вы можете запускать: ./gradlew app:dependencies и искать приложения com.android.support которые объявляют другую версию, чем вы используете. Например:

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

должны показывать зависимости, которые используют версию, отличную от 26.1.0. (Android Studio также должна дать вам пример конфликта зависимости в подсказке некоторых зависимостей com.support.android перечисленных в вашем build.gradle)

В моем случае это был com.android.support:support-compat:27.1.0support-annotations), поэтому запустите:

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

Для того, чтобы увидеть, что библиотека зависит от 27.1.0 версии support-compat. (Замените <YOUR_BUILD_VARIANT> одним из вариантов сборки, например debug).

В моем случае это было:

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

и заменяя:

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

с:

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

исправил проблему для меня.

Ответ 16

Вот мой ответ, возможно, это другой сценарий, но я получил эту ошибку.

Я создавал приложение для музыкального проигрывателя, и я добавил следующую библиотеку в свой файл приложения.

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

Я следовал этому руководству по интеграции ExoPlayer в мое приложение. Я изменил эту версию библиотеки с 2.8.0 до 2.6.0, и она работала нормально.

Я надеюсь, что это помогает кому-то.

Ответ 17

Всякий раз, когда возникает эта ошибка, просто обновите buildtools и поддержите зависимости до более новой версии. Это решит проблему. Имейте в виду, что все зависимости поддержки должны быть одной и той же версии

buildToolsVersion '28.0.2'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'

Ответ 18

загрузить Gradle!

classpath 'com.android.tools.build:gradle:3.3.1'