java.lang.NoClassDefFoundError: * : Landroid/support/v7/gridlayout/R$styleable 异常终极解决办法

简介: 该问题解决办法适用于任何类似问题。问题的标准异常描述为:java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/gridlayout/R$styleable今天由于项目需要,想在...

该问题解决办法适用于任何类似问题。

问题的标准异常描述为:java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/gridlayout/R$styleable

今天由于项目需要,想在项目中使用GridLayout,无奈,标准库中的GridLayout从API 21起才开始提供权重功能,于是使用了支持库中的GridLayout,但是加入到项目中之后报出如下异常:

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/gridlayout/R$styleable

自己检查了项目无数遍没有解决,于是尝试Google,无奈,翻遍了前两页的所有结果,都没能解决,最后还是由百度搜索提供的国内结果将问题解决。

参考地址:http://blog.csdn.net/zhengdan66/article/details/9119653

上面的博客可以针对Eclipse的工程解决,但是在AS中有一些小的细节需要处理到,下面对这些细节做一些补充:

  • 1 . 首先需要将包android-support-v7-gridlayout.jar拷入到AS的libs目录中,然后右击菜单选择”as Library”。
  • 2 . 由于需要将GridLayout的工程目录作为AS的依赖目录,所以需要使用Eclipse将GridLayout的工程导入,然后导出其build.gradle文件,如下图所示:

  • 图一

  • 然后工程中会出现一个build.gradle文件,如下图所示:

  • 这里写图片描述

  • 3 .将以上步骤做好之后,需要在AS中将工程作为依赖工程导入到AS中:

  • 选择图示

  • 4 .上图所示的步骤完成之后,工程就会将GridLayout的工程导入到项目中了:

  • 这里写图片描述

  • 5 .最后打开app的Module配置,将GridLayout库作为app Module的依赖库就可以了:

  • 这里写图片描述

做完以上这些基本上没有问题的,但是由于个别的情况不同,需要将一些细节进行说明:

注意: appcompat-v7包的gradle依赖首选要选择中央库,尽量不要使用appcompat-v7文件依赖包,注意,不能同时存在两种的appcompat-v7依赖关系,这也是不能正常运行的原因之一,gradle的依赖如下所示:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile files('libs/android-support-v4.jar')
    compile files('libs/android-support-v7-gridlayout.jar')
}

希望可以帮到大家,有问题请留言。

目录
相关文章
|
4天前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【6月更文挑战第19天】在Java中,`throws`关键字是异常处理的关键,它提升了方法签名的透明度和代码质量。不使用`throws`时,未捕获的异常可能导致程序崩溃。例如,`readFileContent`方法若不声明`throws IOException`,则隐藏了可能的风险。而明确声明如`throws IOException`,提醒调用者需处理异常,增强代码稳定性。
|
4天前
|
Java 程序员 数据库连接
处理Java异常
处理Java异常
12 4
|
4天前
|
前端开发 Java
【技术进阶】Java高手都在用的秘籍:自定义异常,让错误信息说话!
【6月更文挑战第19天】在Java中,自定义异常提升代码可读性和可维护性,提供针对特定错误的定制反馈。创建自定义异常涉及继承`Exception`类,如`CustomException`,并用它来抛出具有详细信息的错误。在实践中,可以为异常添加额外字段,如`DetailedException`的`errorCode`,以增强信息携带能力。使用自定义异常时,应明确目的、保持简洁、提供丰富信息并统一风格,使其成为高效错误处理的工具。
|
4天前
|
Java 程序员 开发者
【程序员必修课】那些年,我们踩过的Java坑:自定义异常,让你的代码不再“捉急”!
【6月更文挑战第19天】Java异常处理不仅是错误处理,更是程序健壮性的体现。自定义异常能提供更精确的错误信息,便于问题定位。通过继承`Exception`创建自定义异常类,如`NegativeValueException`,可使代码更优雅,降低维护难度。自定义异常还能携带额外信息,如错误代码,增强企业级应用的错误处理能力。善用自定义异常,提升代码质量和开发效率,是优秀编程实践的重要组成部分。
|
4天前
|
搜索推荐 Java 开发者
【实战指南】Java异常处理新高度:自定义异常,打造个性化的错误管理体系!
【6月更文挑战第19天】在Java中,自定义异常允许开发人员针对特定业务需求创建新的异常类型,增强代码可读性和维护性,特别是在大型项目中。它使错误处理更精确,避免通用异常的模糊性,提升程序稳定性。创建自定义异常需继承`Exception`或`RuntimeException`,提供有意义的构造函数,并注意序列化ID。使用时,通过`throw`抛出并在`try-catch`块中捕获。设计上,异常命名应明确,携带相关信息,避免过度使用,且保持一致性。自定义异常是构建健壮错误处理体系的关键。
|
9天前
|
Java Linux Windows
java打包异常【已解决】
java打包异常【已解决】
13 5
|
2天前
|
Scala
scala 读取文件(中文)异常 thread "main" java.nio.charset.MalformedInputException: Input length = 1
scala 读取文件(中文)异常 thread "main" java.nio.charset.MalformedInputException: Input length = 1
4 0
|
2天前
|
Java
springboot 异常java.net.BindException: Address already in use: bind
springboot 异常java.net.BindException: Address already in use: bind
5 0
|
3天前
|
Java 程序员 编译器
杨校老师课堂之Java基础异常专题知识点整理
杨校老师课堂之Java基础异常专题知识点整理
4 0
|
10天前
|
XML Java 数据格式
java异常-SpringBoot-
java异常-SpringBoot-
7 0