使用RecyclerView实现QQ空间广告位一个位置两个图时偶遇bug

前段时间就发现手机qq空间内,在动态中插入的广告在滑动的时候有猫腻(一个位置来回切换两张广告图),一直想要去实现这个效果,但是一直都没有时间去研究,昨天刷空间的时候就又看到了这个效果,所以就在网上找了个帖子在午饭时间研究了一下,不是很复杂,就敲了敲,练了练手。结果运行的时候居然报了下面这个错,我就很不开森了,然后仔细研究了一下这个错。   错误 如下:     


FATAL EXCEPTION: main
                                                                                   Process: com.example.coco.qqzoneadertising, PID: 19774
                                                                                   java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/com.example.coco.qqzoneadertising-2/split_lib_dependencies_apk.apk)
                                                                                       at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)
                                                                                       at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)
                                                                                       at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110)
                                                                                       at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)
                                                                                       at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:81)
                                                                                       at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:71)
                                                                                       at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:67)
                                                                                       at android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753)
                                                                                       at android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:261)
                                                                                       at android.support.v7.widget.ToolbarWidgetWrapper.setWindowTitle(ToolbarWidgetWrapper.java:243)
                                                                                       at android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:621)
                                                                                       at android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged(AppCompatDelegateImplV9.java:631)
                                                                                       at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
                                                                                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                                                                                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                                                       at com.example.coco.qqzoneadertising.MainActivity.onCreate(MainActivity.java:15)
                                                                                       at android.app.Activity.performCreate(Activity.java:6083)
                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1115)
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2357)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2466)
                                                                                       at android.app.ActivityThread.access$900(ActivityThread.java:175)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:135)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5418)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1037)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)



乍一看是没有此方法,其实问题的真正原因是    下图标注;



recyclerview的v7包和appcompat的版本不一致导致,将recycler view的改为26.1.0时,再运行的时候就好了,完美解决



具体的效果实现请移步我的GitHub:点击打开链接     欢迎    fork ||  star。 

 如有错误,请指正,谢谢。

猜你喜欢

转载自blog.csdn.net/lzllzllhl/article/details/78551006
今日推荐