RecyclerView因版本问题无法加载
前几天在学习RecyclerView时候,一直失败,各种加载不上。下面是错误信息
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process:examples.ouc.com.learnrv, PID: 3030
java.lang.NoSuchMethodError:No static method getDisplay(Landroid/view/View;)Landroid/view/Display; in classLandroid/support/v4/view/ViewCompat; or its super classes (declaration of'android.support.v4.view.ViewCompat' appears in/data/data/examples.ouc.com.learnrv/files/instant-run/dex/slice-com.android.support-support-v4-23.4.0_52b240d56765eb2183f5273fe09102c073fde4ef-classes.dex)
atandroid.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2391)
atandroid.view.View.dispatchAttachedToWindow(View.java:14514)
atandroid.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2836)
atandroid.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
atandroid.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
atandroid.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
atandroid.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2843)
atandroid.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1364)
atandroid.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
atandroid.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
atandroid.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
atandroid.view.Choreographer.doCallbacks(Choreographer.java:670)
atandroid.view.Choreographer.doFrame(Choreographer.java:606)
atandroid.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
atandroid.os.Handler.handleCallback(Handler.java:739)
atandroid.os.Handler.dispatchMessage(Handler.java:95)
atandroid.os.Looper.loop(Looper.java:148)
atandroid.app.ActivityThread.main(ActivityThread.java:5417)
atjava.lang.reflect.Method.invoke(Native Method)
atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
先说一下我的步骤吧:
1,首先创建一个Activity,然后添加依赖库:

2,然后在代码中添加RecyclerView:
public class MainActivity extends AppCompatActivity {
private RecyclerView rv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
rv = new RecyclerView(this);
setContentView(rv);
//设置布局
rv.setLayoutManager(new LinearLayoutManager(this));
//添加内容
rv.setAdapter(new RecyclerView.Adapter() {
class ViewHolder extends RecyclerView.ViewHolder{
//绑定子对象的视图
private TextView tv;
public ViewHolder(TextView itemView) {
super(itemView);
tv=itemView;
}
public TextView getTv() {
return tv;
}
}
//创建holder
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(new TextView(parent.getContext()));
}
//对holder的textView进行操作
@Override
//第一个参数是我们绑定的holder
//第二个是一个索引,我们的当前初始化的数据是哪一条
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//注意这里引入的ViewHolder类是我们上面创建的类,不要加错包
ViewHolder vh = (ViewHolder) holder;
vh.getTv().setText("Item "+ position);
}
//获取RecylerView子对象数量
@Override
public int getItemCount() {
return 10;
}
});
}
}
MainActivity.java
3,如果我们现在加载进去,就会和上面报错一样~
而代码应该是没有问题的,我纠结了几天,然后在网上看了好多分析
最后,在下面这个地方,会发现:

大体意思就是说,SDK的版本有问题,就是说版本有问题?我就想怎么会有问题呢?
我们回头看第一个图,添加依赖库时候,我们添加的是v7:25.0.0 而appcompat的版本是v7:23.4.0,
RecylerView的版本比appcompat的版本高,是不支持的!
因此解决方法就很明显了:
将appcompat的版本调整到一样就好了,在添加依赖库的界面将appcompat删除掉,重新加一个高版本的。
这时候你会发现,其实添加的库里面并没有v7:23.4.0版本的,就很坑爹有没有。这时候在运行就没问题了~
RecyclerView因版本问题无法加载的更多相关文章
- 使用Windows安装的最高版本IE内核加载内嵌页(转载)
客户端程序内嵌Webbrowser控件时,默认情况都是使用IE7兼容模式打开网页的.但是IE7有很多新的特性不支持,导致无法正常显示出来,所以需要强制使用高版本的IE内核来加载.渲染. void Ch ...
- CAD2014以上版本不信任加载项解决方法
前一段时间做CAD插件支持版本升级遇到了一个很棘手的问题,CAD2014以上版本增加了受信任功能,每次用程序启动CAD并加载arx文件时都弹出对话框询问是否加载 我的解决方法如下:(仅供参考) 读取注 ...
- Android RecyclerView使用 及 滑动时加载图片优化方案
1.控制线程数量 + 数据分页加载2.重写onScrollStateChanged方法 这个我们后面再谈,下面先来看看RecyclerView控件的使用及我们为什么选择使用它 RecyclerView ...
- 解决Logger在Android Studio 3.1版本无法正常加载tag格式
已经升级到Android Studio 3.1的同学可能会发现一个问题, Logcat中如果短时间出现多条日志tag相同, 只会显示第一条日志的tag, 后面的tag会自动隐藏, 这时com.orha ...
- thrift的php-v0.12版本类自动加载失败
参考网上教程,使用$loader->registerDefinition('Sample', $GEN_DIR); 但是会报PHP Fatal error: Uncaught Error: C ...
- 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载
title: 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 tags: -RecyclerView,下拉刷新,上拉加载更多 grammar_cjkRuby: true - ...
- RecyclerView 下拉刷新上拉加载
步骤: 首先直接定义一个XRecyclerView继承RecyclerView,重写他的三个构造方法. init(Context mContext)方法用来初始化底部加载的view 回到XRecycl ...
- RecyclerViewLoadMoreDemo【封装上拉加载功能的RecyclerView,搭配SwipeRefreshLayout实现下拉刷新】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装含有上拉加载功能的RecyclerView,然后搭配SwipeRefreshLayout实现下拉刷新.上拉加载功能. 在项目中将 ...
- js动态加载activeX控件在IE11与低版本IE中的差异
由于IE11更加遵循W3C规范,所以IE11与低版本IE在加载activeX时有差别. 1.IE11中动态加载activeX的顺序 var objectTag = document.createEle ...
随机推荐
- message from server: "Host 'XXX' is not allowed to connect to this MySQL server
Access denied for user 'root'@'XXXXX' (using password: YES) mysql命令不正确造成: grant all privileges on *. ...
- jQuery滚动数字
<ul class="dateList"> <li class="one"> <p class="titleName&q ...
- Discuz论坛安全加固浅析
[51CTO专稿]Discuz! 论坛以其功能完善.效率高效.负载能力,深受被大多数的网站喜爱和青睐.无独有隅,笔者所维护的论坛就是用discuz! 来构建的,从接手时候的7.2到现在x2.0,经历了 ...
- ajax基础1
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况 ...
- Ant 常用语法及选项
project 项目定义,一个ant文件就是一个 project,定义了项目名称,起始位置以及默认执行的 target. <project name="Easily" bas ...
- PHP xml 转换为 array
retrun json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), tru ...
- Sublime Text 2 配置(转载)
转载 自 Sublime Text 2 的详细配置(C++) 想起暑假在公司偷偷写题,用不惯vs ,配sublime 又一直编译不了...每次用codeblocks 眼泪掉下来www 下载sublim ...
- Rigid motion segmentation
In computer vision, rigid motion segmentation is the process of separating regions, features, or tra ...
- Rendering Problems:android.support.v7.internal.widget.ActionBarOverlayLayout 解决方法
不知道是不是android studio安装不对的问题,每次新建项目都有这个问题. 临时解决方法是: 打开 styles.xml 在Theme.AppCompat.Light.DarkActionBa ...
- HashMap & HashTable的区别
HashMap & HashTable的区别主要有以下: 1.HashMap是线程不安全的,HashTable是线程安全的.由这点区别可以知道,不考虑线程安全的情况下使用HashMap的效率明 ...