chris Jenx for Android Q 的书法库崩溃

Posted

技术标签:

【中文标题】chris Jenx for Android Q 的书法库崩溃【英文标题】:Crash on calligraphy library by chris Jenx for Android Q 【发布时间】:2019-12-21 01:14:26 【问题描述】:

我有一个用于自定义字体的书法库,它似乎适用于除 android Q 之外的所有版本,它会在启动时使我的应用程序崩溃。最近有其他人不得不处理同样的问题吗?这是我的崩溃报告:

Caused by: android.view.InflateException: Binary XML file line #17 in com.myapp.dev:layout/abc_screen_simple: Binary XML file line #17 in com.myapp.dev:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
Caused by: android.view.InflateException: Binary XML file line #17 in commyapp.dev:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:29)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:203)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:239)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:631)
at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:466)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.myapp.dev.ui.splash.SplashActivity.onCreate(SplashActivity.java:36)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)

请注意,我的代码中没有使用 FitWindowsLinearLayout 或 abc_screen_simple,它们都来自这个库。我什至已经更新到最新版本 2.3.0 :

实现“uk.co.chrisjenx:calligraphy:2.3.0”

但没有运气。我什至关注了这个线程上的答案: Crash on Android Q API 29 但没有运气 有什么想法可以解决这个问题吗?

谢谢!

【问题讨论】:

Any ideas how to go about this? 我告诉所有提出图书馆相关问题的人,但也考虑在他们的 github 上提出问题 我也是。还没有回复,这就是为什么我想看看其他人是否有解决方法或以某种方式解决此问题 没问题,不是讨厌你的问题,只是说你可能会找到答案的地方来自创作者:) 希望你能找到答案 你在用这个library吗?如果是这样,那么检查它的依赖关系 【参考方案1】:

你有没有检查图书馆提到

此版本的 Calligraphy 已停产,不再维护。请迁移到Calligraphy 3!

dependencies 
    implementation 'io.github.inflationx:calligraphy3:3.1.1'
    implementation 'io.github.inflationx:viewpump:2.0.3'

所以我建议你使用最新的,你不会遇到上述问题。因为我也在使用相同的 API 29 并没有崩溃。

【讨论】:

我刚做了。不知道迁移。需要测试它是否也向后兼容,但感谢您的链接!这似乎是目前唯一的出路。 好像不向后兼容,需要限制在q及以上 实际上是向后兼容的。刚刚在 android Q 和 API 26 上使用了自定义字体,效果很好

以上是关于chris Jenx for Android Q 的书法库崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Android单元测试系列-Mock之PowerMock

树的直径应用 逃学的小孩

加快QT工程编译速度(还可给Qt for Android设置)

chris garneau - relief 的中英文歌词

给我找找chris garneau的relief的中文歌词?

Chris Richardson微服务实战系列