错误获取Font Landroid / content / Context; ILandroid / util / TypedValue

时间:2017-10-26 03:54:22

标签: java android

我的项目有问题。我不知道如何解决它。这是我第一次见到它。

  

/ UncaughtException:java.lang.NoSuchMethodError:没有静态方法   的getFont(Landroid /内容/上下文; ILandroid / util的/的TypedValue; ILandroid /插件/ TextView的)Landroid /图形/字体或符号;   在课堂上Landroid / support / v4 / content / res / ResourcesCompat;或者它的超级   课程(宣言)   ' android.support.v4.content.res.ResourcesCompat'出现在   /data/app/codes.trongtin.h.besttrip-2/split_lib_dependencies_apk.apk:classes2.dex)

6 个答案:

答案 0 :(得分:20)

您似乎正在使用支持依赖项。 只需检查您的应用程序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'
...
}

必须具有相同的版本。

它对我有用!

答案 1 :(得分:6)

只需更改complieSdkVersion,buildToolsVersion和appCompat依赖项。

      compileSdkVersion 27
      buildToolsVersion '27.0.0'

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

答案 2 :(得分:3)

感谢@ agustin-ruiz-linares的正确答案。

我将在此处添加我的设置以及我正在使用的Firebase和Glide库,以防它对某人有用。在看到库版本以及buildToolsVersion和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'
}

答案 3 :(得分:1)

如果任何支持依赖项的版本不匹配,则会发生此错误。 要考虑的两件事要避免这个错误:

  1. 确保您使用的是最新版本的compileSdkVersion 27
  2. 所有支持库的版本应完全相同

答案 4 :(得分:0)

由于您使用的是支持库,请使用ResourcesCompat

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

这将解决您的问题。

如果你想支持api level 26及以上,你可以使用

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

答案 5 :(得分:-1)

解决方案非常简单..只需将构建工具版本更改为27.0.2并且所有支持库到27.0.2

完成。 宾果!