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 {
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
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.
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
!