NoSuchMethodError erreur pour getActionBar () de l'API (- 8)
quand je lance l'application, elle s'installe mais puis se bloque, ecplise n'est pas dire il n'y a rien de mal avec mon code.
je pense que c'est un problème avec mon manifeste...
<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>
ne u guys voir les problèmes?
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)
c'est le logcat, vous ne savez pas si cela va aider
- Quel est le code de la ligne 15 dans
MainActivity
? - Aparently MainActivity n'ont pas la méthode
getActionBar()
. Post vous MainActivity code. - stackoverflow.com/questions/9183461/.... Cela peut vous aider.
InformationsquelleAutor Guparasti | 2012-10-19
Vous devez vous connecter pour publier un commentaire.
Utilisation
getSupportActionBar
disponible avec le soutien de la bibliothèque v7 comme décrit ici sur le6. Retrieve the Action Bar
sectiongetSupportActionBar documentation
Sur votre classe MainActivity, vous appelez
getActionBar()
qui n'est pas disponible pour votre application.Votre
android:minSdkVersion
est fixé à 8 (API-8), qui ne fournit pas degetActionBar()
(seulement depuis API-11).Vous devez utiliser ActionBarSherlock pour de bonnes raisons de compatibilité ascendante, ou un ensemble
android:minSdkVersion
mais alors tous les appareils < API-11 ne seront pas ciblées.C'est parce que le
getActionBar
est une méthode de l'api 11, mais vous pouvez le faire:et à l'activité de la classe d'ajouter ceci supprime les Peluches:
J'ai été confronté à ce même problème avant. Je viens de remplacer
avec
Vous sont probablement en cours d'exécution sur un téléphone qui est inférieure à celle de l'API 11, qui est lorsque la méthode
getActionBar
a été introduit. Si vous avez besoin pour fonctionner sur les appareils inférieur de l'API de niveau 11, alors vous aurez besoin pour se prémunir contre l'exécution de ces appels qui n'existent que sur les nouvelles API de niveaux, ou bien utiliser une bibliothèque de compatibilité comme ActionBarSherlock ou Barre D'Action De Mise À Niveau. (Voir ce fil pour une discussion des différences entre ces deux.)Changer le
android:minSdkVersion="8"
àandroid:minSdkVersion="11"
et tous les nouveaux appels de l'API que vous effectuez ne s'allument comme des erreurs. Ce sera plus facile de localiser les parties de votre code qui ont besoin d'attention.android:minSdkVersion
d'empêcher son application pour appareils < API 11getActionBar
) lors de l'utilisation de la bibliothèque de compatibilité?Pour api < 11, vous devez utiliser:
Algo assurez-vous d'utiliser appcompat, ajoutez ceci à construire.gradle, le 19.+ devrait être votre projet de la version cible.
Aussi, si vous êtes en utilisant invalidateOptionsMenu() pour navigation tiroir utilisez ceci à la place: