You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:Error Inflating Class android.v7.widget.RecyclerView问题求助

解决RecyclerView Inflate错误:Class not found问题

我来帮你排查这个RecyclerView的膨胀错误,看了你的代码和日志,问题主要出在两个关键地方:布局标签的拼写错误,以及依赖配置的小问题,咱们一步步来解决:

1. 修正布局文件中的RecyclerView标签

你的布局文件里写的是android.v7.widget.RecyclerView,但正确的support库RecyclerView的完整类名应该是android.support.v7.widget.RecyclerView(漏了support前缀),这是导致系统找不到类的直接原因之一。

修改后的布局文件:

<android.support.v7.widget.RecyclerView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:id="@+id/recyclerView" />

2. 统一依赖配置,修复版本和关键字问题

你的build.gradle里存在两个小问题:

  • RecyclerView的依赖用了旧的compile关键字,现在Android Studio推荐使用implementation
  • 版本号用26+可能导致依赖拉取不一致,建议指定具体版本(和appcompat保持一致)

修改后的build.gradle依赖部分:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation 'com.android.support:recyclerview-v7:26.1.0'
}

3. 清理并重建项目

完成以上修改后,执行以下步骤确保依赖生效:

  • 点击Android Studio工具栏的File -> Invalidate Caches / Restart,选择Invalidate and Restart
  • 重启后,执行Build -> Clean Project,然后Build -> Rebuild Project

额外检查点(如果以上步骤仍未解决)

  • 确认你的ShowNews Activity继承的是AppCompatActivity(而不是原生Activity),这样才能正确加载support库的控件
  • 检查是否开启了Multidex:如果你的项目方法数超过65k,需要在build.gradle的defaultConfig里添加multiDexEnabled true,并依赖implementation 'com.android.support:multidex:1.0.3'(不过你的minSdk是21,默认已经支持Multidex,除非你手动关闭了)

你的原始代码参考

build.gradle(原始)

{ 
    compileSdkVersion 26 
    defaultConfig { 
        applicationId "com.example.nysil.newsnow" 
        minSdkVersion 21 
        targetSdkVersion 26 
        versionCode 1 
        versionName "1.0" 
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
        release { 
            minifyEnabled false 
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
        } 
    } 
} 
dependencies { 
    implementation fileTree(dir: 'libs', include: ['*.jar']) 
    implementation 'com.android.support:appcompat-v7:26+' 
    implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
    testImplementation 'junit:junit:4.12' 
    androidTestImplementation 'com.android.support.test:runner:1.0.1' 
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' 
    compile 'com.android.support:recyclerview-v7:26+' 
}

RecyclerView布局文件(原始)

<android.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/recyclerView" />

调试错误日志(原始)

E/MultiWindowProxy: getServiceInstance failed! 
D/AndroidRuntime: Shutting down VM 
E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.nysil.newsnow, PID: 26793 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nysil.newsnow/com.example.nysil.newsnow.ShowNews}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.v7.widget.RecyclerView 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:207) 
at android.app.ActivityThread.main(ActivityThread.java:5776) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.v7.widget.RecyclerView 
at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
at com.example.nysil.newsnow.ShowNews.onCreate(ShowNews.java:14) 
at android.app.Activity.performCreate(Activity.java:6582) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2532) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:207) 
at android.app.ActivityThread.main(ActivityThread.java:5776) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class android.v7.widget.RecyclerView 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
at com.example.nysil.newsnow.ShowNews.onCreate(ShowNews.java:14) 
at android.app.Activity.performCreate(Activity.java:6582) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2532) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:207) 
at android.app.ActivityThread.main(ActivityThread.java:5776) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.v7.widget.RecyclerView" on path: DexPathList[[zip file "/data/app/com.example.nysil.newsnow-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.nysil.newsnow-2/lib/arm64, /vendor/lib64, /system/lib64]] 
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:583) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
at com.example.nysil.newsnow.ShowNews.onCreate(ShowNews.java:14) 
at android.app.Activity.performCreate(Activity.java:6582) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2532) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:207) 
at android.app.ActivityThread.main(ActivityThread.java:5776) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
Suppressed: java.lang.ClassNotFoundException: android.v7.widget.RecyclerView 
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) 
... 22 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

内容的提问来源于stack exchange,提问作者Neeraj Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:46:07