android - with - Cómo solucionarlo: "Es necesario utilizar un tema Theme.AppCompat(o descendiente) con esta actividad"
themes android studio (2)
Tengo problemas para ejecutar mi aplicación de Android en modo de pantalla completa según las instrucciones de un video. Cuando intenta ejecutarse, la aplicación se bloquea con el error.
"You need to use a Theme.AppCompat theme (or descendant) with this activity
Archivo de manifiesto
<?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>
Archivo de estilos
<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 parcial que puede ser útil
public class MainActivity extends AppCompatActivity {
Si agrega android:theme="@style/Theme.AppCompat.Light"
a <application>
en el archivo AndroidManifest.xml, el problema está resolviendo.
Su aplicación tiene un tema de AppCompat
<application
android:theme="@style/AppTheme">
Pero, sobreescribió la Actividad (que extiende AppCompatActivity) con un tema que no es descendiente de un tema AppCompat
<activity android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
Podría definir su propio tema de pantalla completa como tal (observe AppCompat
en el 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>
Entonces ponlo en la Actividad.
<activity android:name=".MainActivity"
android:theme="@style/AppFullScreenTheme" >
Nota : puede haber un tema de AppCompat que ya esté en pantalla completa, pero no lo sepa de inmediato