Android:加载CardView,RecyclerView异常解决方案

  今天下午,在自己的项目中添加了对RecyclerView的支持,但是一直报出“Caused by: java.lang.NoClassDefFound

Error: android.support.v7.recyclerview.R$styleable”的异常,在网上搜罗了一遭,稀里糊涂一下午仍没有解决问题,最后自己尝试从最初加载类库入手找问题,结果最终找到的原因都让自己萌生了想把自己杀了的念头。

  下面从头一一说起:

  首先,建议大家在使用Google的Android Support Library时,不要采用直接将..\sdk\extras\android\m2repository

\com\android\support\recyclerview-v7中的xx.aar文件复制到libs目录,添加Build Path这种方式,还是导入Android 代码最官方;不知道如何导入的笔者参见Google官方链接:http://developer.android.com/tools/support-library/setup.html#libs-with-res。

  其次,对于加载CardView,RecyclerView时报出的异常一种是android-support-v4.jar这个包版本不匹配,另一种就是在导完Android Support Library后,点击鼠标右键——Properties——Android——勾选Is Library——点击Apply。记住一定要点击Apply,应用当前改变,否则配置失效。我就是在导完RecyclerView包后,没点击Apply,结果一直报出上述红色标注的异常,困扰了我一下午。

  最后将完整的导包实践罗列一下,方便大家查阅。  

    • Select File > Import.
    • Select Existing Android Code Into Workspace and click Next.
    • Browse to the SDK installation directory and then to the Support Library folder. For example, if you are adding theappcompat project, browse to <sdk>/extras/android/support/v7/appcompat/.
    • Click Finish to import the project. For the v7 appcompat project, you should now see a new project titled android-support-v7-appcompat.
    • In the Order and Export tab, check the .jar files you just added to the build path, so they are available to projects that depend on this library project. For example, the appcompat project requires you to export both theandroid-support-v4.jar and android-support-v7-appcompat.jar files.
    • Right-click the library project folder and select Properties > check Is Library>click Apply.
    • Click OK to complete the changes.
时间: 2024-10-05 04:45:01

Android:加载CardView,RecyclerView异常解决方案的相关文章

Android加载网络GIF完整解决方案

前言: 加载并显示gif是App常见的一个功能,像加载普通图片一样,大体应该包含以下几项功能: 1.自动下载GIF到本地文件作为缓存,第二次加载同一个url的图片不需要下载第二遍 2.由于GIF往往较大,要显示圆形的进度条提示下载进度 3.在GIF完全下载完之前,先显示GIF的第一帧图像进行占位,完全下载完毕之后自动播放动画. 4.两个不同的页面加载同一张GIF,两个页面的加载进度应该一致 5.支持ViewPager同时加载多个GIF动图 效果演示:            实现思路: 1.关于下

Android加载网络图片报android.os.NetworkOnMainThreadException异常

Android加载网络图片大致可以分为两种,低版本的和高版本的.低版本比如4.0一下或者更低版本的API直接利用Http就能实现了: 1.main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="

【Android Studio】 加载so文件异常

AS无法加载so包异常 android studio导入so包异常:Couldn't load DeviceAPI from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.cloudnet.miniwms-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.cloudnet.miniwms-1, /vendor/lib, /syste

有效解决Android加载大图片时内存溢出的问题

首先解析一下基本的知识: 位图模式,bitmap颜色位数是1位 灰度模式,bitmap颜色位数是8位,和256色一样 RGB模式,bitmap颜色位数是24位 在RGB模式下,一个像素对应的是红.绿.蓝三个字节 CMYK模式,bitmap颜色位数是32位  在CMYK模式下,一个像素对应的是青.品.黄.黑四个字节 图像文件的字节数(Byte) = 图像分辨率*颜色深度/8(bit/8) 例如:一幅640*480图像分辨率.RGB色一般为24位真彩色,图像未经压缩的数据容量为:640X480X24

Android -- 加载大图片的方法

在android中要加载一张大图片到内存中如果通过如下方式进行: Bitmap bitmap= BitmapFactory.decodeFile("/sdcard/a.jpg"); iv.setImageBitmap(bitmap); 则会抛出内存溢出异常Caused by: java.lang.OutOfMemoryError 正确的做法应该是这样的: public class MainActivity extends Activity { private ImageView iv;

Android加载大图片(压缩)

转载自http://blog.csdn.net/junjx/article/details/7798604 在Android开发中,我们经常需要加载图片.但是图片的尺寸往往会很大,如果我们要的是比较小的图片,在Android有限的内存下,我们显然不能把大尺寸的图片放到内存里,这样不但效率降低,而且会导致java.lang.OutOfMemory异常,相信很多朋友都遇到过这样的问题,那么该怎么解决这一问题呢?其实在Android官方文档中早已给出了解决的方案. 一.读Bitmap的尺寸和类型   

记:Ubuntu14.04 Android加载项目失败

Android 加载项目失败: sdk/build-tools/android-4.4.2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory 安装: sudo apt-get install lib32z1 记:Ubuntu14.04 Android加载项目失败,布布扣,bubuko.com

Android加载大图片到内存

加载大图片到内存 步骤: 步骤一: 获取品屏幕的宽高数据;[HD1] 步骤二: 获取图片的宽高;[HD2] 步骤三: 计算屏幕与图片的宽高比例,按照差距最大的进行缩放处理;[HD3] 步骤四: 图片的缩放处理;[HD4] [HD1]// 获取手机的屏幕的窗体大小 WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); Display display = windowManager.getDef

android加载大量图片内存溢出的三种方法

android加载大量图片内存溢出的三种解决办法 方法一:  在从网络或本地加载图片的时候,只加载缩略图. /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @param scalSize 缩小的倍数 * @return */ public static Bitmap loadResBitmap(String path, int scalSize) { BitmapFactory.Options options = new BitmapFactory.Option