Ошибка NoSuchMethodError для getActionBar () (API-8)

Когда я запускаю приложение, которое он устанавливает, но потом падает, ecplise не говорит, что с моим кодом что-то не так. Я думаю, что это проблема с моим манифестом …

<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> 

Неужели у ребят проблемы?

 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) 

Это логарифм, не уверен, что это поможет

Solutions Collecting From Web of "Ошибка NoSuchMethodError для getActionBar () (API-8)"

Используйте getSupportActionBar доступный в библиотеке поддержки v7, как описано здесь, в разделе 6. Retrieve the Action Bar getSupportActionBar 6. Retrieve the Action Bar »

Документация getSupportActionBar

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

В классе MainActivity вы вызываете getActionBar() который недоступен для вашего приложения.

Ваш android:minSdkVersion имеет значение 8 (API-8), которое не предоставляет getActionBar() (только с API-11).

Вы должны использовать ActionBarSherlock для хорошей обратной совместимости или установить android:minSdkVersion но тогда все устройства <API-11 не будут нацелены.

Это потому, что getActionBar – это метод api 11, но вы можете сделать это:

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

И в классе активности добавьте это подавление Lint:

 @SuppressLint("NewApi") 

Раньше я столкнулся с этой проблемой. Я просто заменяю

 getActionBar() 

с

 getSupportActionBar() 

Вероятно, вы работаете на телефоне, который ниже, чем API 11, когда был введен метод getActionBar . Если вам нужно запускать на устройствах ниже уровня API уровня 11, вам нужно будет защититься от выполнения тех вызовов, которые существуют только на более новых уровнях API, или использовать библиотеку совместимости, такую ​​как ActionBarSherlock или Action Bar Compatiblity . (См. Эту тему для обсуждения различий между этими двумя.)

Измените android:minSdkVersion="8" на android:minSdkVersion="11" и все новые вызовы API, которые вы делаете, android:minSdkVersion="11" как ошибки. Это облегчит поиск тех частей вашего кода, которые требуют внимания.

Для api <11 вам необходимо использовать:

 getSupportActionBar(); 

Алго убедитесь, что вы используете appcompat, добавьте это на build.gradle, 19. + должна быть вашей целевой версией проекта.

 compile 'com.android.support:appcompat-v7:19.+' 

Также, если вы используете invalidateOptionsMenu () для навигационного ящика, используйте это вместо этого:

 supportInvalidateOptionsMenu();