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)
<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>
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);
}
}
<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" />
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.
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.
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.
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).
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" />
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.
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.
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.