java.lang.NoClassDefFoundError: * : 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')
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值