java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable 意思是找不到android.support.v7.appcompat.R$styleable这个类。

17

我正在使用终端(而不是Eclipse)。当我成功使用emulator.debug并且成功安装后,我遇到了以下异常错误。但模拟器显示很抱歉应用程序已停止运行。然后我运行$ adb logcat,它会显示以下内容。

java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:107)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at com.example.trintwo.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)

我得到了这个错误,即使我安装了Android支持库并检查了android-support-v7-appcompat.jarandroid/support/v7/appcompat/lib路径中,我该怎么做才能清除这个错误。


你是如何在项目中引用这个库的? - Raghunandan
我正在使用终端。我下载了android-sdk-linux包。解压并使用它。 - Balakrishnan
我遇到了同样的问题(至少我有相同的异常/堆栈跟踪)。我正在使用android-sbt-plugin。通过从版本0.7升级到0.7.1-SNAPSHOT,问题消失了。 - Adam Mackler
请确保您没有重复的库。 - DoronK
5个回答

15
请确保按照以下步骤操作(来自Support Library Setup):
  1. 右键单击库项目文件夹,然后选择“构建路径 > 配置构建路径”。

  2. 在“顺序和导出”选项卡中,勾选您刚添加到构建路径的 .jar 文件,以便它们可用于依赖于此库项目的项目。例如,appcompat 项目要求您导出 android-support-v4.jar 和 android-support-v7-appcompat.jar 文件。

  3. 取消勾选“Android 依赖项”。


3
抱歉,我正在使用终端而不是eclipse。请告诉我如何在终端中操作。 - Balakrishnan
@Mike,工作室用户怎么样? - Rethinavel

8

如果你正在使用Eclipse,那么只需将v7 compat库项目导入到你的工作空间中,并将其作为库添加到你的项目中。否则,如果你是通过终端进行操作,则可以将android-support-v7-appcompat库项目(可以在sdk\extras\android\support\v7\appcompat文件夹中找到)放置在与你的项目相同的目录中,并将以下行添加到你的project.properties文件中。

android.library.reference.1=../android-support-v7-appcompat

不要忘记将v4和v7两个jar文件添加到您的项目中。

1

AppCompat是一个带资源的库。你不能添加jar,因为这个库使用资源。所以你需要添加一个库项目。

按照添加支持库步骤操作。


-1
  1. 右键单击您的项目文件夹,选择Java Build Path > Libraries

  2. 检查您的库项目中是否存在.jar文件

  3. 如果不存在,请构建包含.jar文件的正确路径


3
我正在使用终端(不是Eclipse)。请解释一下终端命令。 - Balakrishnan

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

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