Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NoSuchMethodError error for getActionBar() (API-8)

when i run the app it installs but then crashes, ecplise isnt telling there is anything wrong with my code. i think its a problem with my manifest...

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.secondapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>                
                <meta-data
                    android:name="android.support.PARENT_ACTIVITY"
                    android:value="com.example.secondapp" />
        </activity>
    </application>

</manifest>

do u guys see any problems?

10-19 10:41:25.589: E/AndroidRuntime(10147): FATAL EXCEPTION: main
10-19 10:41:25.589: E/AndroidRuntime(10147): java.lang.NoSuchMethodError: com.example.secondapp.MainActivity.getActionBar
10-19 10:41:25.589: E/AndroidRuntime(10147):    at com.example.secondapp.MainActivity.onCreate(MainActivity.java:15)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.app.ActivityThread.access$1500(ActivityThread.java:123)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.os.Looper.loop(Looper.java:130)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at android.app.ActivityThread.main(ActivityThread.java:3835)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at java.lang.reflect.Method.invokeNative(Native Method)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at java.lang.reflect.Method.invoke(Method.java:507)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
10-19 10:41:25.589: E/AndroidRuntime(10147):    at dalvik.system.NativeStart.main(Native Method)

this is the logcat, not sure if this will help

like image 546
Guparasti Avatar asked Oct 19 '12 15:10

Guparasti


3 Answers

Use getSupportActionBar available with support library v7 as described here on the 6. Retrieve the Action Bar section

getSupportActionBar documentation

like image 173
Muzikant Avatar answered Nov 09 '22 17:11

Muzikant


java.lang.NoSuchMethodError: com.example.secondapp.MainActivity.getActionBar

On your MainActivity class, you call getActionBar() which is not available to your application.

Your android:minSdkVersion is set to 8 (API-8), which does not provide getActionBar() (only since API-11).

You should use ActionBarSherlock for good backward compatibility, or set android:minSdkVersion but then all devices < API-11 won't be targeted.

like image 38
shkschneider Avatar answered Nov 09 '22 16:11

shkschneider


This is because the getActionBar is a method of api 11, but you can do this:

if (android.os.Build.VERSION.SDK_INT >= 11)
    getActionBar().setDisplayHomeAsUpEnabled(true); //example

and in the activity class add this suppress Lint:

@SuppressLint("NewApi")
like image 41
ademar111190 Avatar answered Nov 09 '22 15:11

ademar111190