【发布时间】:2019-10-18 17:02:18
【问题描述】:
将我们的项目迁移到 androidx 后,我遇到了一个奇怪的问题。我们使用从 androidx.appcompat.widget.AppCompatTextView 扩展而来的自定义视图。但是,应用程序在 API
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,应用程序将再次启动而不会崩溃。知道为什么会发生这种情况以及如何解决吗?提前致谢。
【问题讨论】:
-
当我将 androidx 库从 alpha 降级到 stable 时问题消失了。
-
当自定义视图尝试向 greenrobot EventBus 注册自身时,似乎出现了问题。
标签: android android-support-library compatibility androidx