当我将compileSdkVersion更新为30时,它开始在我调用setContentView的行的LoginActivity中显示错误(请参见下面的日志)
2020-06-22 13:43:21.205 14538-14538 / com.gravty。每天 W / gravty.everyda:访问隐藏方法 Landroid / graphics / FontFamily;->()V(greylist-max-q,反射, 拒绝)2020-06-22 13:43:21.206 14538-14538 / com.gravty.everyday E / TypefaceCompatApi26Impl:无法收集必要的方法 类java.lang.NoSuchMethodException java.lang.NoSuchMethodException:android.graphics.FontFamily。 [] 在java.lang.Class.getConstructor0(Class.java:2332) 在java.lang.Class.getConstructor(Class.java:1728) 在androidx.core.graphics.TypefaceCompatApi26Impl.obtainFontFamilyCtor(TypefaceCompatApi26Impl.java:321) 在androidx.core.graphics.TypefaceCompatApi26Impl。(TypefaceCompatApi26Impl.java:84) 在androidx.core.graphics.TypefaceCompatApi28Impl。(TypefaceCompatApi28Impl.java:36) 在androidx.core.graphics.TypefaceCompat。(TypefaceCompat.java:47) 在androidx.core.graphics.TypefaceCompat.findFromCache(TypefaceCompat.java:76) 在androidx.core.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:393) 在androidx.core.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:361) 在androidx.core.content.res.ResourcesCompat.getFont(ResourcesCompat.java:339) 在androidx.appcompat.widget.TintTypedArray.getFont(TintTypedArray.java:119) 在androidx.appcompat.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:430) 在androidx.appcompat.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:204) 在androidx.appcompat.widget.AppCompatTextView。(AppCompatTextView.java:105) 在androidx.appcompat.widget.AppCompatTextView。(AppCompatTextView.java:95) 在androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:182) 在androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 在androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1407) 在androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1457) 在android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1059) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:1121) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) 在android.view.LayoutInflater.parseInclude(LayoutInflater.java:1261) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:1117) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) 在android.view.LayoutInflater.inflate(LayoutInflater.java:680) 在android.view.LayoutInflater.inflate(LayoutInflater.java:532) 在android.view.LayoutInflater.inflate(LayoutInflater.java:479) 在androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 在androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 在com.gravty.everyday.views.activities.LoginActivity.onCreate(LoginActivity.java:53) 在android.app.Activity.performCreate(Activity.java:7989) 在android.app.Activity.performCreate(Activity.java:7978)
答案 0 :(得分:10)
我也遇到了与FontFamily方法相同的错误。原因是
TypefaceCompatApi26Impl.class //它的库丢失了
通过添加稳定版本的核心库
implementation 'androidx.core:core:1.3.0'
(https://developer.android.com/jetpack/androidx/releases/core)在gradle构建文件中。它为我修复了。
答案 1 :(得分:1)
通过将 appCompact 库升级到:
implementation 'androidx.appcompat:appcompat:1.2.0'
解决了我的问题(和你的一样)