Android:Unable to collect necessary methods for class java.lang.NoSuchMethodException异常解决办法

Android:Unable to collect necessary methods for class java.lang.NoSuchMethodException异常解决办法,第1张

概述这个问题困扰了我许久,是在使用RecyclerView的适配器时抛出的异常,不知问题出自何处的我更惊叹的是网上竟找不到任何类似问题的解决办法,最终也只是在stackoverflow找到一个基本相同的问题,但是也没有人回答,不过最后还是解决了,在这里分享一下解决的办法报错信息如下E/TypefaceC

这个问题困扰了我许久,是在使用RecyclerVIEw的适配器时抛出的异常,不知问题出自何处的我更惊叹的是网上竟找不到任何类似问题的解决办法,最终也只是在stackoverflow找到一个基本相同的问题,但是也没有人回答,不过最后还是解决了,在这里分享一下解决的办法

报错信息如下

E/TypefaceCompatAPI26Impl: Unable to collect necessary methods for class java.lang.NoSuchMethodException    java.lang.NoSuchMethodException: androID.graphics.FontFamily.<init> []        at java.lang.class.getConstructor0(Class.java:2332)        at java.lang.class.getConstructor(Class.java:1728)        at androIDx.core.graphics.TypefaceCompatAPI26Impl.obtainFontFamilyCtor(TypefaceCompatAPI26Impl.java:321)        at androIDx.core.graphics.TypefaceCompatAPI26Impl.<init>(TypefaceCompatAPI26Impl.java:84)        at androIDx.core.graphics.TypefaceCompatAPI28Impl.<init>(TypefaceCompatAPI28Impl.java:36)        at androIDx.core.graphics.TypefaceCompat.<clinit>(TypefaceCompat.java:47)        at androIDx.core.graphics.TypefaceCompat.create(TypefaceCompat.java:190)        at androIDx.appcompat.Widget.AppCompatTextVIEw.setTypeface(AppCompatTextVIEw.java:705)        at androID.Widget.TextVIEw.resolveStyleAndSetTypeface(TextVIEw.java:2183)        at androID.Widget.TextVIEw.setTypefaceFromAttrs(TextVIEw.java:2154)        at androID.Widget.TextVIEw.applyTextAppearance(TextVIEw.java:4105)        at androID.Widget.TextVIEw.<init>(TextVIEw.java:1630)        at androID.Widget.TextVIEw.<init>(TextVIEw.java:990)        at androIDx.appcompat.Widget.AppCompatTextVIEw.<init>(AppCompatTextVIEw.java:99)        at androIDx.appcompat.Widget.AppCompatTextVIEw.<init>(AppCompatTextVIEw.java:95)        at androIDx.appcompat.app.AppCompatVIEwInflater.createTextVIEw(AppCompatVIEwInflater.java:182)        at androIDx.appcompat.app.AppCompatVIEwInflater.createVIEw(AppCompatVIEwInflater.java:103)        at androIDx.appcompat.app.AppCompatDelegateImpl.createVIEw(AppCompatDelegateImpl.java:1407)        at androIDx.appcompat.app.AppCompatDelegateImpl.onCreateVIEw(AppCompatDelegateImpl.java:1457)        at androID.vIEw.LayoutInflater.tryCreateVIEw(LayoutInflater.java:1059)        at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:995)        at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:959)        at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:1121)        at androID.vIEw.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)        at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:1124)        at androID.vIEw.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)        at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:680)        at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:532)        at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:479)        at androID.vIEw.VIEw.inflate(VIEw.java:26707)        at com.example.appdemo.adapters.MessageAdapter.onCreateVIEwHolder(MessageAdapter.java:29)        at com.example.appdemo.adapters.MessageAdapter.onCreateVIEwHolder(MessageAdapter.java:15)        at androIDx.recyclervIEw.Widget.RecyclerVIEw$Adapter.createVIEwHolder(RecyclerVIEw.java:7078)        at androIDx.recyclervIEw.Widget.RecyclerVIEw$Recycler.tryGetVIEwHolderForpositionByDeadline(RecyclerVIEw.java:6235)        at androIDx.recyclervIEw.Widget.RecyclerVIEw$Recycler.getVIEwForposition(RecyclerVIEw.java:6118)        at androIDx.recyclervIEw.Widget.RecyclerVIEw$Recycler.getVIEwForposition(RecyclerVIEw.java:6114)        at androIDx.recyclervIEw.Widget.linearlayoutmanager$LayoutState.next(linearlayoutmanager.java:2303)        at androIDx.recyclervIEw.Widget.linearlayoutmanager.layoutChunk(linearlayoutmanager.java:1627)        at androIDx.recyclervIEw.Widget.linearlayoutmanager.fill(linearlayoutmanager.java:1587)        at androIDx.recyclervIEw.Widget.linearlayoutmanager.onLayoutChildren(linearlayoutmanager.java:665)        at androIDx.recyclervIEw.Widget.RecyclerVIEw.dispatchLayoutStep2(RecyclerVIEw.java:4134)        at androIDx.recyclervIEw.Widget.RecyclerVIEw.onMeasure(RecyclerVIEw.java:3540)        at androID.vIEw.VIEw.measure(VIEw.java:25466)        at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6957)        at androID.Widget.linearLayout.measureChildBeforeLayout(linearLayout.java:1552)        at androID.Widget.linearLayout.measureVertical(linearLayout.java:842)        at androID.Widget.linearLayout.onMeasure(linearLayout.java:721)        at androID.vIEw.VIEw.measure(VIEw.java:25466)        at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6957)

指向onCreateVIEwHolder中的这一行

VIEw itemVIEw = VIEw.inflate(mContext,R.layout.message_vIEw, null);

程序会报异常,但却可以运行

解决方案一

修改build.gradle中的targetSdkVersion为28

targetSdkVersion 28

解决方案二

添加依赖

def core_version = "1.3.2"

用Java的话还需要

//Javaimplementation "androIDx.core:core:$core_version"

用Kotlin加这个

// Kotlinimplementation "androIDx.core:core-ktx:$core_version"

最后同步依赖重新启动项目就可以了

总结

以上是内存溢出为你收集整理的Android:Unable to collect necessary methods for class java.lang.NoSuchMethodException异常解决办法全部内容,希望文章能够帮你解决Android:Unable to collect necessary methods for class java.lang.NoSuchMethodException异常解决办法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1007575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存