web-dev-qa-db-fra.com

android.util.AndroidRuntimeException: vous ne pouvez pas combiner la suppression de balayage et la barre d'action

Je suis nouveau dans la programmation Android et j'ai démarré un exemple de programme Hello World, mais je suis coincé avec l'erreur ci-dessous:

07-05 13:52:20.830: W/dalvikvm(898): threadid=1: thread exiting with uncaught exception (group=0xb2ac4d70)
07-05 13:52:20.850: E/AndroidRuntime(898): FATAL EXCEPTION: main
07-05 13:52:20.850: E/AndroidRuntime(898): Process: com.example.helloandroid, PID: 898
07-05 13:52:20.850: E/AndroidRuntime(898): Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.helloandroid/com.example.helloandroid.MainActivity}: Android.util.AndroidRuntimeException: You cannot combine swipe dismissal and the action bar.
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2197)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2258)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.ActivityThread.access$800(ActivityThread.Java:138)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1209)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.os.Handler.dispatchMessage(Handler.Java:102)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.os.Looper.loop(Looper.Java:136)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.ActivityThread.main(ActivityThread.Java:5026)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Java.lang.reflect.Method.invokeNative(Native Method)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Java.lang.reflect.Method.invoke(Method.Java:515)
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:777)
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:602)
07-05 13:52:20.850: E/AndroidRuntime(898):  at dalvik.system.NativeStart.main(Native Method)
07-05 13:52:20.850: E/AndroidRuntime(898): Caused by: Android.util.AndroidRuntimeException: You cannot combine swipe dismissal and the action bar.
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.Android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.Java:275)
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.Android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.Java:2872)
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.Android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.Java:3129)
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:303)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.Activity.setContentView(Activity.Java:1930)
07-05 13:52:20.850: E/AndroidRuntime(898):  at com.example.helloandroid.MainActivity.onCreate(MainActivity.Java:13)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.Activity.performCreate(Activity.Java:5242)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1087)
07-05 13:52:20.850: E/AndroidRuntime(898):  at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2161)

Fichier manifeste:

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

<uses-sdk
    Android:minSdkVersion="8"
    Android:targetSdkVersion="18" />

<application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >
    <activity
        Android:name="com.example.helloandroid.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>

MainActivity.Java

package com.example.helloandroid;
import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
}

activity_main.xml

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"

 >

    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="@string/hello" />

</RelativeLayout>

Aidez-moi à savoir où je me trompe, je suis actuellement sur Android 4.3, API 18,

J'ai essayé Android 4.0.3 API 15, Android 4.4W API 20; j'ai également essayé de modifier sdk comme ci-dessous, mais pas de chance.

<uses-sdk
   Android:minSdkVersion="15"
   Android:targetSdkVersion="19" />
31
user3797788

4.4W est Android Wear SDK. (Ne ciblez pas Android wear device))

essayez de changer la version cible du SDK en 19

vérifier ici paramètre targetSdkVersion

N'utilisez pas le niveau API 20 et la plate-forme 4.4W (qui est Android Wear SDK) comme Android Virtual Device).

Utilisez l'API niveau 19 et la plateforme 4.4.2 tout fonctionne bien.

33

J'ai eu le même problème. Mais la version sdk n'était pas la cause de cette exception.

Dans le fichier AndroidManifest.xml, le thème contient ActionBar.

Android:theme="@style/AppTheme" >

Remplacez la ligne ci-dessus par

Android:theme="@Android:style/Theme.DeviceDefault" >

Cela corrigera l'exception.

4.4W est Android Wear SDK.

Cette erreur est due au fait que l'appareil que vous ciblez est Android Wear qui a un modèle de conception différent.

Si vous développez une application mobile, changez votre AVD et ciblez n'importe quelle API en dessous de 20 ou choisissez API 20 (aperçu L).

Ou si vous visez vraiment Android Wear, modifiez la conception de votre application.

9
vinksharma

J'utilise Android Studio beta 0.8.6 avec Java 7. J'ai eu le même problème. Et corrigé de cette façon.

Dans le fichier AndroidManifest.xml, le thème contient ActionBar.

Android:theme="@style/AppTheme" >

Remplacez la ligne ci-dessus par

Android:theme="@Android:style/Theme.DeviceDefault" >

Cela corrigera l'exception. Comme mentionné par Gangadhar dans la réponse précédente, la version sdk n'était pas la cause de cette exception.

Et je l'ai testé avec l'application helloWorld.

5
user989383

J'ai eu cette erreur car j'ai essayé d'exécuter la partie mobile d'un projet d'usure sur l'appareil Samsung Gear. Après être passé de "mobile" à "wear" dans les configurations d'exécution, tout a fonctionné (API niveau 20 et plateforme 4.4W est en effet le bon choix dans ce cas).

2
user3918631

J'ai eu ce problème en essayant de créer le projet dans Eclipse.
J'ai dû ajouter ce qui suit au fichier manifeste:

<uses-feature Android:name="Android.hardware.type.watch" />
1
TheTall

accédez à values ​​/ styles.xml et définissez les styles comme suit:

<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="Android:Theme.DeviceDefault">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

En outre, dans les dossiers res/values-v11 et res/values-v14, et tous les dossiers dans values-vxx modifiez le fichier styles.xml comme suit:

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="Android:Theme.DeviceDefault">
        <!-- API 14 theme customizations can go here. -->
    </style>

</resources>

Vous ne devez pas ajouter de thèmes de barre d'action car ils ne sont pas compatibles avec les appareils d'usure.

1
user1544900

Changez la version cible du SDK en 19

Installer l'API niveau 19 et la plateforme 4.4.2

Utilisez l'API niveau 19 et la plateforme 4.4.2 lors de l'exécution de l'application dans AVD.

0
Sreekumar

J'ai beaucoup de mal à résoudre le problème. Rien ne fonctionne pour moi, sauf les modifications que j'ai apportées dans AndroidManifest.xml.

<uses-sdk
        Android:minSdkVersion="7"
        Android:targetSdkVersion="21" />

Retirer Android:targetSdkVersion, ça a marché pour moi, vous pouvez aussi essayer.

0
sashikanta