androidx.appcompat.widget.AppCompatTextView与API <26不兼容

时间:2019-06-03 06:48:08

标签: android android-support-library compatibility androidx

将我们的项目迁移到androidx后,我遇到了一个奇怪的问题。我们使用从androidx.appcompat.widget.AppCompatTextView扩展的自定义视图。但是,应用程序在具有以下堆栈跟踪(仅切至相关部分)的API <26的设备上崩溃:

java.lang.NoClassDefFoundError: android.view.textclassifier.TextClassifier
    at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
    at java.lang.Class.getDexCacheType(Class.java:2551)
    at java.lang.reflect.AbstractMethod.getParameterTypes(AbstractMethod.java:169)
    at java.lang.reflect.Method.getParameterTypes(Method.java:193)
    at org.greenrobot.eventbus.SubscriberMethodFinder.findUsingReflectionInSingleClass(SubscriberMethodFinder.java:163)
    at org.greenrobot.eventbus.SubscriberMethodFinder.findUsingInfo(SubscriberMethodFinder.java:88)
    at org.greenrobot.eventbus.SubscriberMethodFinder.findSubscriberMethods(SubscriberMethodFinder.java:64)
    at org.greenrobot.eventbus.EventBus.register(EventBus.java:140)
    at com.chrono24.mobile.controls.LocalizedTextView.onAttachedToWindow(LocalizedTextView.kt:65)

现在,正如我所看到的,在android.view.textclassifier.TextClassifier中添加了API 26,这将解释为什么缺少该类的原因。如果我将AppCompatTextView更改为普通的旧TextView,则该应用程序将再次启动而不会崩溃。知道为什么会这样以及如何解决吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

只需确保您没有使用自定义字体或.ttf文件 如果您正在使用,则将您的.ttf文件转换为.otf,它将在android 10上正常工作 这是android 10的已知问题。