2015-07-28 66 views
3

我使用RecyclerView我的应用程序,但在运行的应用程序崩溃和我的logcat写着:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.recyclertest/com.example.recyclertest.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v7.widget.RecyclerView 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5254) 
      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:903) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v7.widget.RecyclerView 
      at android.view.LayoutInflater.createView(LayoutInflater.java:633) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
      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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
      at android.app.Activity.setContentView(Activity.java:2145) 
      at com.example.recyclertest.MainActivity.onCreate(MainActivity.java:20) 
      at android.app.Activity.performCreate(Activity.java:5990) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5254) 
            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:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Constructor.newInstance(Native Method) 
      at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
      at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
            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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
            at android.app.Activity.setContentView(Activity.java:2145) 
            at com.example.recyclertest.MainActivity.onCreate(MainActivity.java:20) 
            at android.app.Activity.performCreate(Activity.java:5990) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5254) 
            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:903) 
            at com.a 

ndroid.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/recyclerview/R$styleable; 
      at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:434) 
      at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:404) 
            at java.lang.reflect.Constructor.newInstance(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
            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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
            at android.app.Activity.setContentView(Activity.java:2145) 
            at com.example.recyclertest.MainActivity.onCreate(MainActivity.java:20) 
            at android.app.Activity.performCreate(Activity.java:5990) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5254) 
            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:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.recyclerview.R$styleable" on path: DexPathList[[zip file "/data/app/com.example.recyclertest-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.support.v7.widget.RecyclerView.<init>(RecyclerView.java:434) 
            at android.support.v7.widget.RecyclerView.<init>(RecyclerView.java:404) 
            at java.lang.reflect.Constructor.newInstance(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
            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 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
            at android.app.Activity.setContentView(Activity.java:2145) 
            at com.example.recyclertest.MainActivity.onCreate(MainActivity.java:20) 
            at android.app.Activity.performCreate(Activity.java:5990) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5254) 
            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:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Suppressed: java.lang.ClassNotFoundException: android.support.v7.recyclerview.R$styleable 
      at 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) 
      ... 27 more 
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

我加android- support-v7-cardview,android-support-v7-gridlayout, android-support-v7-recyclerview和android-support-v7-appcompat 到我的项目。 我使用的IntelliJ IDEA

一对API等级22

+0

我不熟悉intellji,但是你的问题似乎是因为你只添加了那些项目的jar文件。请检查并将它们添加为依赖关系模块。也许这个链接将帮助你https://www.jetbrains.com/idea/help/configuring-module-dependencies-and-libraries.html – Minhtdh

+0

我也将它们添加到依赖关系也无法正常工作...当我打开android支持-v7-recyclerview.jar recyclerview文件夹为空,错误指向“/ recyclerview/R $ styleable”,这是为什么? – Masoudfcr

回答

1

我也得到了类似的错误而回。 确保您使用的不是

<RecyclerView> 

标签,因为它是在你的代码,并使用

<android.support.v7.widget.RecyclerView> 

和您的build.gradle文件具有以下代码

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
compile 'com.android.support:appcompat-v7:22.2.1' 
compile 'com.android.support:cardview-v7:22.2.1' 
compile 'com.android.support:recyclerview-v7:22.2.1'} 

照顾这两件事为我解决了这个错误。 如果你的情况你做了其他的事情,那么请分享你的代码,以便我可以指出错误的原因。

+0

我没有使用gradle,我使用intellij的想法,我将所有这些库添加到我的项目并设置为依赖关系 – Masoudfcr

+0

分享您的代码 – bpncool

4

我仍然在使用Eclipse,而不是Intellij,但它可能会对您有所帮助,因为在升级到最新版本的支持库后,今天我偶然发现了这个错误。 我以前只是把recyclerview jar复制到我的项目; lib文件夹中并添加到依赖项中。显然这不是正确的方式了。我必须重新添加库作为“资源库” - 几乎与cardview库需要添加的方式相同。

对于Eclipse,我只需按照“添加资源库”一节中的说明操作https://developer.android.com/tools/support-library/setup.html。 FWIW我必须在导入过程中将新添加的recyclerview标记为库(默认不是,并且此步骤在说明中跳过了)。

我希望它有帮助!

+1

在文档中他们不会谈论Eclipse用户....您能解释一下如何在Eclipse中添加资源库? –

7

您需要清除recyclerview lib项目并重新构建它。然后建立你的应用程序现在必须找到课程。

+0

哦,我的上帝你的回答就像我的上帝 – ANinJa

+1

@ANinJa如果你停止使用Eclipse并开始使用Android Studio,那将会更好。在Android Studio中很容易管理外部库,而不是Eclipse – Nik

+0

,但是在eclipse中2-3年后运行项目的公司会如何呢?将来Google会关闭所有的Eclipse支持? – ANinJa

0

今天我遇到了同样的错误。 我打开了我的项目结构 - >模块。 展开模块并选择Android选项。 将支持库模块为“库模块”,那么它的工作

我希望它能帮助 Project Structure screen shot

0

我有保存错误。半小时后,我发现,在项目结构中,recyclerview未被标记为“库模块”。这个设置解决了问题

相关问题