首页 文章

android.support.v7.RecyclerView导致ClassNotFoundException

提问于
浏览
-1
  • OS = Linux Mint 17 KDE

  • Android-Emul . = Genymotion

  • Android-Stduio版本= 1.2.2

我正在努力使用新的android-studio并导入recyclerview .

我已经尝试了许多不同的方法来使recyclerview工作:

activity_base.xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:elevation="7dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            android:id="@+id/tool_bar"
            layout="@layout/toolbar">
        </include>

        <TextView android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <android.support.v7.RecyclerView
        android:id="@+id/recycler_view"
        android:scrollbars="vertical"
        android:layout_width="320dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="@color/orange">

    </android.support.v7.RecyclerView>

</android.support.v4.widget.DrawerLayout>

BaseActivity.java

package de.test.actionbarmd;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

public class BaseActivity extends AppCompatActivity {

    private Toolbar mToolBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_base);

        mToolBar = (Toolbar) findViewById(R.id.tool_bar);
        setSupportActionBar(mToolBar);
    }
}

build.gradle

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
    defaultConfig {
        applicationId "de.test.actionbarmd"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
    }
    productFlavors {
    }
}

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

我总是得到以下异常:

java.lang.RuntimeException:无法启动活动ComponentInfo {de.test.actionbarmd / de.test.actionbarmd.BaseActivity}:android.view.InflateException:二进制XML文件行#23:错误膨胀类android.support.v7 . RecyclerView引起:android.view.InflateException:二进制XML文件行#23:错误膨胀类android.support.v7.RecyclerView引起:java.lang.ClassNotFoundException:未找到类“android.support.v7.RecyclerView”路径:DexPathList [[zip文件“/data/app/de.test.actionbarmd-2/base.apk"],nativeLibraryDirectories=[/vendor/lib,/ system / lib]]

我做错了什么或者是新的android -studio中的错误?

1 回答

  • 2

    它应该是 android.support.v7.widget.RecyclerView ,你在布局中缺少单词 widget 因此找不到类,

    正确的代码:

    <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:scrollbars="vertical"
            android:layout_width="320dp"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:background="@color/orange">
    
        </android.support.v7.widget.RecyclerView>
    

相关问题