异常java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ styleable

6

大家好,我在使用support库时遇到了一个异常。我知道stackoverflow上有很多相关的问题和答案,但都没有适用于我。

11-27 11:58:15.470: E/AndroidRuntime(19609): FATAL EXCEPTION: main
11-27 11:58:15.470: E/AndroidRuntime(19609): java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:147)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:138)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at com.devicemonitor.DeviceMonitorActivity.onCreate(DeviceMonitorActivity.java:29)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.Activity.performCreate(Activity.java:5104)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.os.Looper.loop(Looper.java:137)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at android.app.ActivityThread.main(ActivityThread.java:5041)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at java.lang.reflect.Method.invokeNative(Native Method)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at java.lang.reflect.Method.invoke(Method.java:511)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-27 11:58:15.470: E/AndroidRuntime(19609):    at dalvik.system.NativeStart.main(Native Method)

我所做的就像这样 - 我在Android Java构建路径中有android-support-v7-appcompat.jar和android-support-v4.jar。
在SO的一些答案中,建议取消Java构建路径中的Android依赖项,我也尝试了,但对我没有任何作用。
在我的gen文件夹中,有两个包,一个是goole-play-service-lib,另一个是我的项目,在我的项目包下的gen文件夹中只有两个文件:R.java和BuildCOnfig.java。如果有人有任何建议,请告诉我。
5个回答

2

在您的工作区中将support.v7.appcompat作为库项目导入并将其与您的项目连接。

尝试这个方法,它一定会起作用。 如果您仍然遇到任何问题,请评论说明。


这是我所指的:<sdk>\extras\android\support\v7\appcompat - Nitesh
导入后,您知道如何将其添加到您的项目中吗?还是我需要解释所有步骤? - Nitesh
我尝试了一下。在文件夹value-v21的theme_base.xml中,appcompat本身显示错误,具体是在以下这行代码:<item name="actionModeShareDrawable">?android:attr/actionModeShareDrawable</item>。 - Dilshad Ahmad
是的,这是因为您的编译器设置低于21 API。请前往属性> Android> 将API级别21标记为已选中,保存后清理此库项目。 - Nitesh
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Si8
显示剩余2条评论

2

您只需删除appcompat并重新导入到eclipse中,并将其android构建属性更改为最高api配置。清理您的项目,将R文件复制粘贴到gen包中,并将项目构建路径更改为最高api级别,如api-21。

这将解决您的问题。


1
在“android-support-v7-appcompat”项目中:
-Delete “android-support-v7-appcompat” from Package explorer.
-Import again and check “Copy into workspace”
-In Properties -> Android -> in Project build target, uncheck Android 2.2 and check Android 4.1.2
-In Java build path, uncheck if you have any .jar library, and uncheck the Dependence

最后,这就是你需要做的。 enter image description here

1
我尝试了一下。在文件夹value-v21的theme_base.xml中,appcompat本身显示错误,具体是在以下这行代码:<item name="actionModeShareDrawable">?android:attr/actionModeShareDrawable</item>。 - Dilshad Ahmad
如果这个库本身出现错误,我该如何将其用作库。请给我建议。 - Dilshad Ahmad
如果你遇到了这个问题,那么你可能需要下载一个新的AppCompat:| - Syeda Zunaira
在搜索了一下之后,我发现可能是因为编译器设置在21API级别以下。请在您的属性中更改:android。 - Syeda Zunaira
@Zoain:老兄,你没有v21文件夹,因为你的appcompact库太旧了。你需要下载一个新的。 - Nitesh
显示剩余4条评论

0

尝试使用带有资源的v7 appcompat导入您的项目,而不是直接使用.jar文件。

这是导入带有资源的appcompat的链接 - https://developer.android.com/tools/support-library/setup.html

如果在导入v7 appcompat后在您的项目中遇到问题,请交叉检查清单中的目标SDK版本,并将目标SDK版本设置为最新的SDK API版本。

希望这可以帮助您!


0
问题似乎比较广泛,但在我个人的情况下,它是由于build.gradle中以下依赖项之间的冲突引起的。
compile 'com.facebook.android:facebook-android-sdk:3.21.1'

compile 'com.google.android.gms:play-services-plus:7.5.0'

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