java.lang.NoSuchMethodError:没有静态方法getFont(Landroid/content/Context; ILandroid/util/TypedValue; ILandroid/widget/TextView;)

ik0*_*024 58 android android-studio-3.0 android-gradle-3.0

在我将Android Studio更新为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
}
Run Code Online (Sandbox Code Playgroud)

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'

}
Run Code Online (Sandbox Code Playgroud)

错误:

致命异常:主程序: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'的声明出现在android.support.v7.widget中的/data/app/com.ik.githubbrowser-YvwoGrxR8QaUEZ3IEqFVLQ==/split_lib_dependencies_apk.apk).在Android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110)的android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)上的TintTypedArray.getFont(TintTypedArray.java:119) .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.ToolbarWidgetWrapper的android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:67)android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753). .setTitleInt(ToolbarWidgetWrapper.java:261)在android.support.v7.widget.ToolbarWidgetWrapper.set android.support的android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:621)上的WindowTitle(ToolbarWidgetWrapper.java:243)位于android.support的android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged(AppCompatDelegateImplV9.java:631)位于android.support.v7.app.AppCompatDelegateImplV9.java:284的android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java)中的.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328) :139)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.)的android.app.Activity.performCreate(Activity.java:6975)的com.ik.githubbrowser.ui.search_user.SearchUserActivity.onCreate(SearchUserActivity.java:49). java:1213)在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.app.AooT.Thread.main上的android.os.Handler.dispatchMessage(Handler.java:105)android.os.Looper.loop(Looper.java:164)(ActivityThread) .java:6541)位于com.android.internal.os.ZygoteInit的com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)的java.lang.reflect.Method.invoke(Native Method) .主要(ZygoteInit.java:767)

Naw*_*rez 76

修复res/values/styles.xmlManifest.xml,如下所示:此解决方案已经过测试,不要忘记清理和构建:

1.Manifest.xml

将HomeActivity的主题更改为:

        <activity
        android:name=".ui.home.HomeActivity"
        android:theme="@style/Base.Theme.AppCompat.Light" />
    <activity android:name=".BaseActivity"></activity>
Run Code Online (Sandbox Code Playgroud)

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" />
Run Code Online (Sandbox Code Playgroud)

所要求的详细解释:无论如何Theme.AppCompat.Light.DarkActionBar都是超类的子类Base.按住Ctrl键并单击(Android Studio),您将被带到源:

<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />
Run Code Online (Sandbox Code Playgroud)

3. GithubBrowser-Master.gradle

制造 support_version = "27.0.0" 而不是 support_version = "26.0.2

4.app.gradle:

compileSdkVersion 27
    buildToolsVersion '27.0.0'
Run Code Online (Sandbox Code Playgroud)

并不是

   compileSdkVersion 26
buildToolsVersion '26.0.2'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我使用了27.0.2而没有对res/values/styles.xml和Manifest.xml进行任何其他更改,问题刚解决了. (12认同)
  • @BabyPanda:当我回答这个问题时,构建工具是27.0.1并且它对我不起作用,我认为它是在27.0.2中完成的修复,那很好:) (4认同)

May*_*m R 16

这对我有用:

    buildToolsVersion "27.0.3"
Run Code Online (Sandbox Code Playgroud)

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'
}
Run Code Online (Sandbox Code Playgroud)


Gen*_*ani 7

就我而言,我在Kotlin项目中使用Android-KTX:这就是错误的原因.我刚刚将它从build.gradle中删除为依赖项.implementation 'androidx.core:core-ktx:0.1'


小智 5

我也遇到了这个问题,并通过设置应用程序gradle文件解决了这个问题。

将您的编译SDK版本更改为27,并将buildToolsVersion更改为27.0.3

compileSdkVersion 27

buildToolsVersion“ 27.0.3”

添加27.1.1版本支持库。

编译'com.android.support:recyclerview-v7:27.1.1'

编译'com.android.support:cardview-v7:27.1.1'

编译'com.android.support:appcompat-v7:27.1.1'

然后同步项目。

而已。