Question

I am creating action bar in my app. But suddenly app stop working. I dont know why as errors in logcat are very strange for me.

MainActivity-

public class MainActivity extends ActionBarActivity{

    private Button hist, typ, ben, exit;
    Intent i, objIntent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addListenerOnButton();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }

    public void addListenerOnButton()
    {
        hist = (Button) findViewById(R.id.hist);
        hist.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                startActivity(new Intent(MainActivity.this, History.class));
                finish();
            }
        });

        typ = (Button) findViewById(R.id.typ);
        typ.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                startActivity(new Intent(MainActivity.this, Types.class));  
                finish();        
            }
        });

        ben = (Button) findViewById(R.id.ben);
        ben.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                startActivity(new Intent(MainActivity.this, Benefits.class));  
                finish();               
            }
        });

        exit = (Button) findViewById(R.id.exit);
        exit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                startActivity(new Intent(MainActivity.this, EndSplash.class));
                finish();
            }
        });
    }

    @Override
    protected void onPause() {
        super.onPause();
        objIntent = new Intent(MainActivity.this, PlayAudio.class);
        stopService(objIntent);
    }

    @Override 
    public void onBackPressed() {
        super.onBackPressed();
        objIntent = new Intent(MainActivity.this, PlayAudio.class);
        stopService(objIntent);         
    } 

    @Override 
    public void onResume()
    {
        super.onResume();
        objIntent = new Intent(MainActivity.this, PlayAudio.class);
        startService(objIntent);
    }
}

Main.xml-

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:hmkcode="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_search"
        android:orderInCategory="100"
        hmkcode:showAsAction="always"
        android:icon="@drawable/ic_launcher"
        android:title="Search"/>
    <item
        android:id="@+id/action_copy"
        android:orderInCategory="100"
        hmkcode:showAsAction="always"
        android:icon="@drawable/ic_launcher"
        android:title="Copy"/>
    <item
        android:id="@+id/action_share"
        android:orderInCategory="100"
        hmkcode:showAsAction="always"
        android:icon="@drawable/ic_launcher"
        android:title="Share"/>
</menu>

Logact-

01-29 05:39:38.349: E/AndroidRuntime(1565): FATAL EXCEPTION: main
01-29 05:39:38.349: E/AndroidRuntime(1565): Process: com.info.abc, PID: 1565
01-29 05:39:38.349: E/AndroidRuntime(1565): java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:107)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at com.info.abc.MainActivity.onCreate(MainActivity.java:20)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.Activity.performCreate(Activity.java:5231)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.os.Looper.loop(Looper.java:136)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at android.app.ActivityThread.main(ActivityThread.java:5017)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at java.lang.reflect.Method.invokeNative(Native Method)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at java.lang.reflect.Method.invoke(Method.java:515)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-29 05:39:38.349: E/AndroidRuntime(1565):     at dalvik.system.NativeStart.main(Native Method)
Was it helpful?

Solution 2

Your log says

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

It seems you have not referenced the AppCompat in your android project. From your comments

I have added it in libs folder. 

Wrong.

Its a library project. You need to reference AppCompat in your android project.

Check the topic Adding libraries with resources @

http://developer.android.com/tools/support-library/setup.html

OTHER TIPS

When using classes from the Support Library, be certain you import the class from the appropriate package. For example, when applying the ActionBar class:

  • android.support.v7.appcompat when using the Support Library
  • android.app.ActionBar when developing only for API level 11 or higher.

Go to official page How to setup support libary

Update:

Add ActionBar to Android 2.x (v7 appcompat library).Here they show how to use the support library’s to bring action bar to older version of android

http://hmkcode.com/add-actionbar-to-android-2-3-x/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top