Error implementing Support Library Action Bar
Solution 1
So, how I solved this problem:
- Import support library as a project from "sdk/extras/android/support/v7/appcompat".
- Reference library in your project (for Eclipse, "Properties - Android - Add").
- Build projects (for Eclipse, "Projects - Build All"). Make sure, you have "android.support.v7.appcompat" in your main project gen folder.
- If it doesn't worked - clean and rebuild project.
Solution 2
I have done the following and worked for me.
- Delete the jar from the libs folder.
- Import the sdk\extras\android\support\v7\appcompat\ project in your eclipse workspace.
- Ensure that the android-support-v4.jar is the same in your project.
- Add the appcompat as a library to your project.
Ensure that your in yout Manifest.xml your activity has the correct theme
<activity
android:name="***.*****.******"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light"
>
Good Luck ;)
Solution 3
In addition to BoredT's answer I added this line to res/values/styles.xml
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
Solution 4
Follow steps from Adding libraries with resources -> Eclipse http://developer.android.com/tools/support-library/setup.html :
- follow all the steps (use copy project in workspace)
- add
android.library.reference.1=../android-support-v7-appcompat
to your project.properties - use
android:theme="@style/Theme.AppCompat"
I used it in application tag you can apply to individual activities as well
Rebuild all!
Solution 5
This is how I solve the problem: rebuild the adroid-support-v7-appcompat library project in your eclipse workspace. Then build your own project again.
Related videos on Youtube
![Charlie-Blake](https://i.stack.imgur.com/Fn99v.png?s=256&g=1)
Comments
-
Charlie-Blake almost 4 years
I'm trying to implement the new v7 Support Library
ActionBar
. However, I can't get it to run properly.Here's the exception
07-25 09:30:01.704: E/AndroidRuntime(9175): FATAL EXCEPTION: main 07-25 09:30:01.704: E/AndroidRuntime(9175): java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:98) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) 07-25 09:30:01.704: E/AndroidRuntime(9175): at com.cidaut.termoweb.MainActivity.onCreate(MainActivity.java:23) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.Activity.performCreate(Activity.java:5133) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.ActivityThread.access$600(ActivityThread.java:141) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.os.Handler.dispatchMessage(Handler.java:99) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.os.Looper.loop(Looper.java:137) 07-25 09:30:01.704: E/AndroidRuntime(9175): at android.app.ActivityThread.main(ActivityThread.java:5103) 07-25 09:30:01.704: E/AndroidRuntime(9175): at java.lang.reflect.Method.invokeNative(Native Method) 07-25 09:30:01.704: E/AndroidRuntime(9175): at java.lang.reflect.Method.invoke(Method.java:525) 07-25 09:30:01.704: E/AndroidRuntime(9175): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 07-25 09:30:01.704: E/AndroidRuntime(9175): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-25 09:30:01.704: E/AndroidRuntime(9175): at dalvik.system.NativeStart.main(Native Method)
The problem happens at the
super.onCreate(bundle)
call atonCreate()
.Here's all my theming related XML:
styled.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.Termoweb" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="actionBarItemBackground">@drawable/selectable_background_termoweb</item> <item name="popupMenuStyle">@style/PopupMenu.Termoweb</item> <item name="dropDownListViewStyle">@style/DropDownListView.Termoweb</item> <item name="actionBarTabStyle">@style/ActionBarTabStyle.Termoweb</item> <item name="actionDropDownStyle">@style/DropDownNav.Termoweb</item> <item name="actionBarStyle">@style/ActionBar.Solid.Termoweb</item> <item name="actionModeBackground">@drawable/cab_background_top_termoweb</item> <item name="actionModeSplitBackground">@drawable/cab_background_bottom_termoweb</item> <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Termoweb</item> <!-- Light.DarkActionBar specific --> <item name="actionBarWidgetTheme">@style/Theme.Termoweb.Widget</item> </style> <style name="ActionBar.Solid.Termoweb" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@drawable/ab_solid_termoweb</item> <item name="backgroundStacked">@drawable/ab_stacked_solid_termoweb</item> <item name="backgroundSplit">@drawable/ab_bottom_solid_termoweb</item> <item name="progressBarStyle">@style/ProgressBar.Termoweb</item> </style> <style name="ActionBar.Transparent.Termoweb" parent="@style/Widget.AppCompat.ActionBar"> <item name="background">@drawable/ab_transparent_termoweb</item> <item name="progressBarStyle">@style/ProgressBar.Termoweb</item> </style> <style name="PopupMenu.Termoweb" parent="@style/Widget.AppCompat.ListView.Menu"> <item name="popupBackground">@drawable/menu_dropdown_panel_termoweb</item> </style> <style name="DropDownListView.Termoweb" parent="@style/Widget.AppCompat.ListView.DropDown"> <item name="listSelector">@drawable/selectable_background_termoweb</item> </style> <style name="ActionBarTabStyle.Termoweb" parent="@style/Widget.AppCompat.ActionBar.TabView"> <item name="background">@drawable/tab_indicator_ab_termoweb</item> </style> <style name="DropDownNav.Termoweb" parent="@style/Widget.AppCompat.Spinner"> <item name="background">@drawable/spinner_background_ab_termoweb</item> <item name="popupBackground">@drawable/menu_dropdown_panel_termoweb</item> <item name="dropDownSelector">@drawable/selectable_background_termoweb</item> </style> <style name="ProgressBar.Termoweb" parent="@style/Widget.AppCompat.ProgressBar.Horizontal"> <item name="progressDrawable">@drawable/progress_horizontal_termoweb</item> </style> <style name="ActionButton.CloseMode.Termoweb" parent="@style/Widget.AppCompat.ActionButton.CloseMode"> <item name="background">@drawable/btn_cab_done_termoweb</item> </style> <!-- this style is only referenced in a Light.DarkActionBar based theme --> <style name="Theme.Termoweb.Widget" parent="@style/Theme.AppCompat"> <item name="popupMenuStyle">@style/PopupMenu.Termoweb</item> <item name="dropDownListViewStyle">@style/DropDownListView.Termoweb</item> </style> </resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cidaut.termoweb" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.Termoweb" > <activity android:name="com.cidaut.termoweb.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
-
BoredT almost 11 yearsAre you completely sure that you have "android.support.v7.appcompat.R.java" in your gen folder? Without it, it won't work
-
Charlie-Blake almost 11 yearsI am completely and absolutely sure I have R.java in v7 gen folder.
-
Charlie-Blake almost 11 yearsI had referenced
@style/Widget.AppCompat.Spinner
which for some reason does not exist. I just removed every reference to that style and everything worked like a charm. -
S-K' almost 11 years+1 for mentioning that the activity must use the "Theme.AppCompat" theme or a theme that sub classes "Theme.AppCompat"
-
Leon over 10 yearsThis resolved my issue. Adding the line to project.properties allowed Eclipse to generate R.java.
-
McGafter almost 10 yearsThanks. "Build ALL"... How can I miss it, yet I have.
-
peacepassion almost 10 yearsYeah, you must have android.support.v7.appcompat package in the gen folder.
-
Si8 about 8 yearsI added the library and it shows in the
referenced folder
but can't find it in the Android tab.