我将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
}
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'
}
错误:
致命例外:主程序:com.ik.githubbrowser,PID:4248 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/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)at 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) 在android.app.Activity.performCreate(Activity.java:6975)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.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.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(Native Method)at com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
答案 0 :(得分:74)
修复 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 /值/ 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'
答案 1 :(得分:16)
这对我有用:
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'
}
答案 2 :(得分:7)
就我而言,我在 Kotlin 项目中使用 Android-KTX :implementation 'androidx.core:core-ktx:0.1'
,这就是错误的原因。我刚刚将其从 build.gradle 中删除为依赖项。
答案 3 :(得分: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'
然后同步项目。
就这样。
答案 4 :(得分:4)
答案 5 :(得分:2)
compileSdkVersion 26有时会出现此错误。要解决此问题,请在app.gradle文件中将compileSdkVersion和targetSdkVersion升级到27。 还要更改依赖项部分中的相应依赖项。您不需要为此指定buildToolsVersion。
答案 6 :(得分:2)
所有dependecies的版本应与compileSdkVersion相同。所以在build.gradle(模块)中的代码下面为我工作。
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'
...
答案 7 :(得分:1)
只需将套餐中的活动主题更改为:
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"
答案 8 :(得分:1)
解决方案非常简单..只需将构建工具更改为27.0.2即可 并且所有支持库版本到27.0.2 Bingo..error解决了
答案 9 :(得分:1)
就我而言,此问题是由于 Glide 和 Appcompat库(版本互不支持)的组合而出现的。
下面是对我有用的东西(在应用程序级别build.gradle)-
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.github.bumptech.glide:glide:4.8.0'
希望它会帮助别人。
答案 10 :(得分:0)
我试图在这个问题中找到答案,但就我而言,这是我的配置:
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"
我们的构建工具版本可能与支持库版本相同。
答案 11 :(得分:0)
对我来说,问题是由于我的某个应用依赖项之一使用了更高版本的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.0
(和support-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'
}
使用:
Uri.fromFile(File(content))
为我解决了这个问题。
答案 12 :(得分:0)
这是我的答案,可能是不同的情况,但是我遇到了这个错误。
我正在创建音乐播放器应用,并且已在我的应用gradle文件中添加了以下库。
implementation 'com.google.android.exoplayer:exoplayer:2.8.0'
我正在遵循这个tutorial来将ExoPlayer集成到我的应用中。我将此库版本从2.8.0更改为2.6.0,并且工作正常。
我希望这对某人有帮助。
答案 13 :(得分:0)
每当发生此错误时,只需更新buildtools并支持对较新版本的依赖项即可解决此问题。请记住,所有支持依赖项都应为同一版本
buildToolsVersion '28.0.2'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
答案 14 :(得分:0)
上传gradle!
classpath'com.android.tools.build:gradle:3.3.1'