RecyclerView架包的使用问题
来源:互联网 发布:linux查看sas hba卡 编辑:程序博客网 时间:2024/04/29 18:07
以前项目都是用的Android studio,我们知道在as中,使用开源控件可以直接在gradle添加地址,as会自动下载我们所需要的jar包文件,这就很少会出现缺少文件的问题,最近在使用RecyclerView的时候,由于公司项目是用的idea,并且项目以前是ecplise的,并没有使用gradle,所以只能通过添加jar包的形式,这就出现了一些问题,折磨了我一天半的时间,google了很久各种方法试了遍,都没能解决,就在快要准备放弃换方案时无意中解决了。。。特此记录一下,以防再次有人在这上面浪费时间,希望能帮到大家。
第一个错误:
Exception: java.lang.Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{in.redbus.android/in.redbus.android.activity.OffersListActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class android.support.v7.widget.RecyclerViewat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{in.redbus.android/in.redbus.android.activity.OffersListActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class android.support.v7.widget.RecyclerViewat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2314)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)at android.app.ActivityThread.access$800(ActivityThread.java:148)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:135)at android.app.ActivityThread.main(ActivityThread.java:5312)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:901)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class android.support.v7.widget.RecyclerViewat android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757)at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)at android.view.LayoutInflater.inflate(LayoutInflater.java:504)at android.view.LayoutInflater.inflate(LayoutInflater.java:414)at android.view.LayoutInflater.inflate(LayoutInflater.java:365)at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)at in.redbus.android.activity.OffersListActivity.onCreate(OffersListActivity.java:34)at android.app.Activity.performCreate(Activity.java:5953)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)at android.app.ActivityThread.access$800(ActivityThread.java:148)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:135)at android.app.ActivityThread.main(ActivityThread.java:5312)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:901)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.RecyclerView" on path: DexPathList[[zip file "/data/app/in.redbus.android-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)at java.lang.ClassLoader.loadClass(ClassLoader.java:511)at java.lang.ClassLoader.loadClass(ClassLoader.java:469)at android.view.LayoutInflater.createView(LayoutInflater.java:571)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)at android.view.LayoutInflater.inflate(LayoutInflater.java:504)at android.view.LayoutInflater.inflate(LayoutInflater.java:414)at android.view.LayoutInflater.inflate(LayoutInflater.java:365)at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)at in.redbus.android.activity.OffersListActivity.onCreate(OffersListActivity.java:34)at android.app.Activity.performCreate(Activity.java:5953)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)at android.app.ActivityThread.access$800(ActivityThread.java:148)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:135)at android.app.ActivityThread.main(ActivityThread.java:5312)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:901)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)Suppressed: java.lang.ClassNotFoundException: android.support.v7.widget.RecyclerViewat java.lang.Class.classForName(Native Method)at java.lang.BootClassLoader.findClass(ClassLoader.java:781)at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)at java.lang.ClassLoader.loadClass(ClassLoader.java:504)... 24 more
这个错误是由于android-support-v4.jar和android-support-v7-recyclerview.jar版本不一致导致的,我们可以用android-sdk\extras\android\support下的v4和recyclerview,或者使用android-sdk\extras\android\m2repository\com\android\support这个文件夹下的包,选择对应的版本,进入后有个后缀名为.aar的,将其解压,解压后里面的classes.jar就是其架包,改成对应的名字即可。
下面以android-sdk\extras\android\m2repository\com\android\support文件下的RecyclerView为列
通过上述方式就能拿到我们所需的RecyclerView架包,v4也是同样的步骤,不过要保证两个架包的版本相同,即第二张图所选择的版本是一致的。
然而老的问题解决了,又出现了新的问题,依旧还是缺少东西,错误日志如下,主要看红色的部分:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shinco.lincolncardvr/com.shinco.lincolncardvr.view.FileListActivity}: android.view.InflateException: Binary XML file line #32: Error inflating class com.shinco.lincolncardvr.common.EmptyRecyclerView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #32: Error inflating class com.shinco.lincolncardvr.common.EmptyRecyclerView
at android.view.LayoutInflater.createView(LayoutInflater.java:626)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361)
at android.app.Activity.setContentView(Activity.java:1956)
at com.shinco.lincolncardvr.view.FileListActivity.onCreate(FileListActivity.java:241)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:600)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361)
at android.app.Activity.setContentView(Activity.java:1956)
at com.shinco.lincolncardvr.view.FileListActivity.onCreate(FileListActivity.java:241)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: android.support.v4.widget.ScrollerCompatGingerbread
at android.support.v4.widget.ScrollerCompat$ScrollerCompatImplGingerbread.createScroller(ScrollerCompat.java:153)
at android.support.v4.widget.ScrollerCompat.<init>(ScrollerCompat.java:270)
at android.support.v4.widget.ScrollerCompat.<init>(ScrollerCompat.java:254)
at android.support.v4.widget.ScrollerCompat.create(ScrollerCompat.java:250)
at android.support.v7.widget.RecyclerView$ViewFlinger.<init>(RecyclerView.java:3428)
at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:346)
at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:387)
at com.shinco.lincolncardvr.common.EmptyRecyclerView.<init>(EmptyRecyclerView.java:22)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:600)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361)
at android.app.Activity.setContentView(Activity.java:1956)
at com.shinco.lincolncardvr.view.FileListActivity.onCreate(FileListActivity.java:241)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: android.support.v4.widget.ScrollerCompatGingerbread 由这句话可以知道,缺少的是v4包下的文件,这就奇怪了,v4明明已经导了为什么还会缺少文件呢?
- RecyclerView架包的使用问题
- android v7兼容包RecyclerView的使用
- 使用v7包中的recyclerview遇到的问题简单记录一下
- Android:RecyclerView | 第三方包的导入 | JDK问题等
- RecyclerView初使用遇到的一个问题
- SwipeRefreshLayout和RecyclerView使用的小问题
- 使用RecyclerView时遇到的问题
- RecyclerView中使用checkbox遇到的问题
- 使用 recyclerView 布局显示不合理的问题
- RecyclerView使用中遇到的问题
- ScrolView和RecyclerView嵌套使用的问题
- RecyclerView 使用headView的时候出现问题
- 使用RecyclerView在出现的问题
- 使用RecyclerView遇到的问题及解决
- RecyclerView嵌套使用RadioGroup出现的问题
- RecyclerView使用xRefreshView时遇到的问题
- 使用Recyclerview控件遇到的一些问题
- RecyclerView GridLayoutManager 使用遇到的问题
- leetcode算法题总结之Two Sum
- 动态注册监听网络变化
- Python 开发环境
- Android4.0.3/Android4.2.2 添加 Ethernet
- Floodlight(v1.2)+OpenFlow交换机测试环境搭建
- RecyclerView架包的使用问题
- textview段落首字母缩进俩个字符
- python的requests初步使用
- jQuery创建平滑的页面滚动(顶部或底部)
- Jersey框架初体验
- 安卓学习笔记---Android颜色代码表
- JavaScript for...in循环
- Java SpringMVC浏览器端上传文件至服务器
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) C 模拟