这个问题困扰了我许久,是在使用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异常解决办法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)