无法正常使用Android Support V7 CardView库的解决方法

7

我使用Ant构建的IntelliJ/Android Studio(目前没有使用Gradle),想要使用android-support-v7-cardview.jar,但是我一直收到以下错误提示:

android.view.InflateException: Binary XML file line #19: Error inflating class android.support.v7.widget.CardView
java.lang.NoClassDefFoundError: android.support.v7.cardview.R$styleable

我没有使用m2repository的aar文件,但是在以下位置使用了cardview

sdk/extras/android/support/v7

我已经通过在我的项目中使用jar包中的类使其工作,但它需要API 21(5.0),而我还不想使用它。我正在尝试在libs文件夹中使用jar文件和res文件。

 sdk/extras/android/support/v7/cardview/res 

我已经将lib文件和res文件添加到自己的项目中,但仍然收到上述错误信息。我该怎么办?

5个回答

14

在build.gradle的依赖中添加compile 'com.android.support:cardview-v7:23.2.1'以使用CardView后,我遇到了完全相同的问题。但是,在清理项目(Build > Clean Project)之后,一切都像魔术般地正常工作了。


2

嗨,这可能会对你有帮助,这对我起作用了。(适用于IntelliJ用户)

  • 点击您的项目,
  • 右键单击 -> 打开模块设置(f4)
  • 从\sdk\extras\android\support\v7\导入cardview
  • 将.jar文件添加到cardview模块中
  • 点击您的项目并将模块依赖项添加到cardview
  • 现在,在cardview上点击(+)按钮 -> android -> 在顶部您将看到一个复选框(库模块),启用它。
  • 点击确定并关闭设置对话框。
  • 重新构建您的项目并运行它。

0
如果您正在使用Android Studio,那么很快就可以完成,请在build.gradle的依赖项中添加compile 'com.android.support:cardview-v7:21.+'
dependencies {
   compile 'com.android.support:cardview-v7:21.+'
}

0

我并没有真正找出错误所在,但我只是在库源代码中注释掉了使用 Android 5.0 的部分,现在它可以正常工作了。我不想使用 Android 5.0 的 minSdk。


0

我认为您需要将其作为Android库项目导入,然后资源应该能够正确地被找到。我也尝试过先只导入jar文件,但没有成功,所以我是这样做的:

  1. CardView的项目位于Android SDK文件夹中:Android\android-sdk\extras\android\support\v7\cardview
  2. 在Eclipse中使用"导入"并选择"将现有的Android代码导入工作区",然后导入CardView项目
  3. 进入新项目的属性 -> Android,将其标记为库项目,然后在无法找到CardView的自己的项目中将其链接为库项目

就这样


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接