Recyclerview運(yùn)行找不到類

在引用RecyclerView類的時(shí)候編譯不報(bào)錯(cuò),運(yùn)行時(shí)報(bào)錯(cuò)找不到類。
該情況只會(huì)在Eclipse中會(huì)出現(xiàn),目測(cè)是ADT的bug

04-07 14:34:00.045: E/AndroidRuntime(12739): FATAL EXCEPTION: main 
04-07 14:34:00.045: E/AndroidRuntime(12739): Process: com.malata.android.font.fontmanagermaster, PID: 12739
04-07 14:34:00.045: E/AndroidRuntime(12739): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.malata.android.font.fontmanagermaster/com.malata.android.font.fontmanagermaster.MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class android.support.v7.widget.RecyclerView
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2534)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2608)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.ActivityThread.access$800(ActivityThread.java:178)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.os.Handler.dispatchMessage(Handler.java:111)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.os.Looper.loop(Looper.java:194)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.ActivityThread.main(ActivityThread.java:5637)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.reflect.Method.invoke(Native Method)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.reflect.Method.invoke(Method.java:372)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
04-07 14:34:00.045: E/AndroidRuntime(12739): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class android.support.v7.widget.RecyclerView
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.view.LayoutInflater.createView(LayoutInflater.java:633)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at com.malata.android.font.fontmanagermaster.FontListFragment.onCreateView(FontListFragment.java:61)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.Fragment.performCreateView(Fragment.java:2069)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:899)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1072)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.BackStackRecord.run(BackStackRecord.java:852)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.Activity.performStart(Activity.java:6107)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2491)
04-07 14:34:00.045: E/AndroidRuntime(12739):  ... 10 more
04-07 14:34:00.045: E/AndroidRuntime(12739): Caused by: java.lang.reflect.InvocationTargetException
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.reflect.Constructor.newInstance(Native Method)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.view.LayoutInflater.createView(LayoutInflater.java:607)
04-07 14:34:00.045: E/AndroidRuntime(12739):  ... 22 more
04-07 14:34:00.045: E/AndroidRuntime(12739): Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/recyclerview/R$styleable;
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:487)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:456)
04-07 14:34:00.045: E/AndroidRuntime(12739):  ... 25 more
04-07 14:34:00.045: E/AndroidRuntime(12739): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.recyclerview.R$styleable" on path: DexPathList[[zip file "/data/app/com.malata.android.font.fontmanagermaster-2/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
04-07 14:34:00.045: E/AndroidRuntime(12739):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
04-07 14:34:00.045: E/AndroidRuntime(12739):  ... 27 more
04-07 14:34:00.045: E/AndroidRuntime(12739):  Suppressed: java.lang.ClassNotFoundException: android.support.v7.recyclerview.R$styleable
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.Class.classForName(Native Method)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
04-07 14:34:00.045: E/AndroidRuntime(12739):  at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
04-07 14:34:00.045: E/AndroidRuntime(12739):  ... 28 more
04-07 14:34:00.045: E/AndroidRuntime(12739):  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

網(wǎng)上大部分帖子對(duì)于這個(gè)報(bào)錯(cuò)的解釋是導(dǎo)入的包v4和recyclerview.jar不兼容,需要導(dǎo)入<sdk>\extras\android\support統(tǒng)一路徑下的v4包和recyclerview。

發(fā)現(xiàn)是因?yàn)镽ecyclerView控件所依賴的android-support-v4包版本不一致造成的,即項(xiàng)目本身使用了一個(gè)appcompat的依賴(appcompat中包含了android-support-v4.jar),而這個(gè)support-v4和RecyclerView依賴的support-v4不是一個(gè)版本(從RecyclerView的源碼中可以看到其確實(shí)使用了不少的support-v4工具類)
但我的情況仍然不起效,判斷依然是包不兼容導(dǎo)致的。但不知為何導(dǎo)入同一個(gè)版本重新下載的包不起效。

在stackflow上找到另一種解決方案

  • Go to C:\Users\Hk-PC\Desktop\eclipse\adt-bundle-windows-x86->20140702\sdk\extras\android\m2repository\com\android\support\recyclerview-v7\22.1.1
  • Open recyclerview-v7-22.1.1.aar file with Winrar
  • There is a jar file named classes.jar. Copy that to your project libs folder.
  • Right click classes.jar, add to build path.
    來(lái)源: http://stackoverflow.com/questions/29998850/recyclerview-class-not-found-in-eclipse

不要問(wèn)我為何這種方式就可以了,而且這個(gè)方法復(fù)用性很低,就是說(shuō)我把包刪掉再按這個(gè)步驟來(lái)估計(jì)又會(huì)失效。網(wǎng)上資料幾乎沒(méi)有,用AS代替吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,898評(píng)論 2 45
  • 依依暮色定,漠漠田園濘。 隨月過(guò)仙桃,望星思監(jiān)利。 注:監(jiān)利縣為湖北荊州下屬縣市,監(jiān)在這里為四聲。
    GreenLi閱讀 404評(píng)論 0 0
  • 無(wú)意看到這么一句話,“她們(我媽)這一輩的人都相信這么一句話,苦盡甘來(lái),可是我一直看到的都是苦,甘一直都不來(lái)。” ...
    1個(gè)湯圓閱讀 5,027評(píng)論 4 5
  • 準(zhǔn)備剪一段七彩陽(yáng)光 采幾朵誘人白云 捎上南方路邊嫩綠的柳枝 還有 正散發(fā)著淡淡清香的花骨朵兒 織一件暖暖的衣裳 給你寄去
    格伊閱讀 166評(píng)論 0 0

友情鏈接更多精彩內(nèi)容