web-dev-qa-db-fra.com

Comment résoudre ce problème: "Vous devez utiliser un thème (ou un descendant) Theme.AppCompat avec cette activité"

Je rencontre des difficultés pour exécuter mon Android en mode plein écran, conformément aux instructions d'une vidéo. Lorsqu'elle tente de s'exécuter, l'application se bloque avec l'erreur.

"You need to use a Theme.AppCompat theme (or descendant) with this activity

Fichier manifeste

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.djsg38.hikerswatch">

<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission Android:name="Android.permission.INTERNET" />

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme">
    <activity Android:name=".MainActivity"
        Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

Fichier de styles

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

MainActivity partiel qui peut être utile

public class MainActivity extends AppCompatActivity {
27
Doug Steiert

Votre application a un thème AppCompat

<application
    Android:theme="@style/AppTheme">

Mais vous avez écrasé l'activité (qui étend AppCompatActivity) avec un thème qui ne soit pas descendant d'un thème AppCompat.

<activity Android:name=".MainActivity"
    Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" >

Vous pouvez définir votre propre thème plein écran comme suit (notez AppCompat dans le parent=)

<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>

Puis définissez cela sur l'activité.

<activity Android:name=".MainActivity"
    Android:theme="@style/AppFullScreenTheme" >

Note: Il se peut qu'un thème AppCompat soit déjà en plein écran, mais ne sache pas tout de suite

78
cricket_007

Si vous ajoutez le Android:theme="@style/Theme.AppCompat.Light" à <application> dans le fichier AndroidManifest.xml, le problème est en train de résoudre.

0
Y.E.S.

vous devez ajouter theme à toutes vos activités (vous devez ajouter theme pour toute application dans ur <application> dans votre manifeste) mais si vous avez défini un thème différent de votre activité, vous pouvez utiliser:

 Android:theme="@style/Theme.AppCompat"

ou chaque type de thème AppCompat!

0
sana ebadi