Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Necesita utilizar un tema Theme.AppCompat (o descendente) con esta actividad

Android Studio 0.4.5

Documentación de Android para crear cuadros de diálogo personalizados: http://developer.android.com/guide/topics/ui/dialogs.html

Si desea un diálogo personalizado, puede mostrar una actividad como un diálogo en lugar de utilizar las API de diálogo. Simplemente cree una actividad y establezca su tema en Theme.Holo.Dialog en el elemento manifesto <activity> :

 <activity android:theme="@android:style/Theme.Holo.Dialog" > 

Sin embargo, cuando lo intenté, obtuve la siguiente excepción:

 java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

Estoy apoyando lo siguiente, y no puedo usar algo mayor que 10 para el min:

 minSdkVersion 10 targetSdkVersion 19 

En mis estilos tengo lo siguiente:

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

Y en mi manifiesto tengo esto para la actividad:

  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:theme="@android:style/Theme.Holo.Light.Dialog" android:name="com.ssd.register.Dialog_update" android:label="@string/title_activity_dialog_update" > </activity> 

Crear el cuadro de diálogo como este era algo que estaba saltando a hacer, ya que ya he completado el diseño.

¿Puede alguien decirme cómo puedo evitar este problema?

  • ¿Eclipse ADT se Deprecated?
  • Cómo deshacerse de la advertencia de Android Studio "Resultado de getException () no lanzado"?
  • El estudio de Android toma demasiada memoria
  • ¿Por qué Android Studio no encuentra mis recursos?
  • Cómo corregir com.android.builder.internal.aapt.AaptException: ¿No se pudo corregir el archivo?
  • Equivalente a la vista "Problemas" de Eclipse en Android Studio
  • Android Studio 0.4: No se pudo encontrar el método jniDir ()
  • ¿Cómo encontrar los registros en android studio?
  • 30 Solutions collect form web for “Necesita utilizar un tema Theme.AppCompat (o descendente) con esta actividad”

    La razón por la que tiene este problema es porque la actividad a la que está intentando aplicar el tema de diálogo está extendiendo ActionBarActivity que requiere que el tema AppCompat se aplique.

    Actualizar : Extender AppCompatActivity también tendría este problema

    En este caso, cambie la herencia de Java de ActionBarActivity a Activity y deje el tema de diálogo en el manifiesto tal cual, un valor no Theme.AppCompat


    La regla general es que si quieres que tu código soporte versiones anteriores de Android, debería tener el tema AppCompat y el código java debería extender AppCompatActivity . Si tiene * una actividad que no necesita este soporte, como sólo le interesan las últimas versiones y características de Android, puede aplicar cualquier tema, pero el código java debe extender la antigua Activity .


    NOTA: Cuando cambie de AppCompatActivity (o una subclase, ActionBarActivity ), a Activity , también debe cambiar las varias llamadas con "support" a la llamada correspondiente sin "support". Por lo tanto, en lugar de getSupportFragmentManager , llame a getFragmentManager .

    Todo lo que necesitas hacer es añadir android:theme="@style/Theme.AppCompat.Light" a tu etiqueta de aplicación en el archivo AndroidManifest.xml .

    Copiando la respuesta de @ MarkKeen en los comentarios anteriores, ya que tenía el mismo problema.

    Tuve el error indicado en la parte superior de la publicación y sucedió después de haber añadido un cuadro de diálogo de alerta. Tengo toda la información de estilo relevante en el manifiesto. Mi problema se curó al cambiar una referencia de contexto en el constructor de alertas – He cambiado:

     new android.support.v7.app.AlertDialog.Builder(getApplicationContext()) 

    a:

     new android.support.v7.app.AlertDialog.Builder(this) 

    Y no más problemas.

    Min sdk es 10. ActionBar está disponible desde api nivel 11. Así que para 10 que estaría utilizando AppCompat de la biblioteca de soporte para el que necesita utilizar Theme.AppCompat o descendiente de la misma.

    Utilizar

     android:theme="@style/Theme.AppCompat" > 

    Más información @

    http://developer.android.com/guide/topics/ui/actionbar.html

    Eidt:

    Podría haber leído mal el post.

    Parece op quiere un diálogo con un tema de actividad. Así como ya sugerimos por Bobbake4 extender la Activity lugar de ActionBarActivity .

    También tiene un look @ Atributos de diálogo en el siguiente enlace

    http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/frameworks/base/core/res/res/values/themes.xml/

    Esto funcionó para mí, me acaba de cambiar:

     final AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 

    a esto:

     final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 

    Esto es lo que me lo arreglaron: en lugar de especificar el tema en manifesto, lo onCreate en onCreate para cada actividad que extiende ActionBarActivity :

     @Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.MyAppTheme); super.onCreate(savedInstanceState); setContentView(R.layout.my_activity_layout); ... } 

    Aquí MyAppTheme es un descendiente de Theme.AppCompat , y se define en xml. Tenga en cuenta que el tema debe establecerse antes de super.onCreate y setContentView .

    Ir a sus estilos y poner el padre

     parent="Theme.AppCompat" 

    en lugar de

     parent="@android:style/Theme.Holo.Light" 

    Estaba experimentando este problema aunque mi tema era un tema de AppCompat y mi actividad era AppCompatActivity (o Activity , según lo sugerido en otras respuestas). Así que limpié, reconstruir y volver a ejecutar el proyecto.

    ( Build -> Clean Project, Build -> Rebuild Project, Run -> Run )

    Puede parecer tonto, pero ahora funciona muy bien !

    Sólo espero que ayude!

    Si necesitas extender ActionBarActivity necesitas en tu estilo.xml:

     <!-- Base application theme. --> <style name="AppTheme" parent="AppTheme.Base"/> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> 

    Si estableces como tema principal de tu aplicación como android: Theme.Material.Light en lugar de AppTheme.Base , obtendrás una "IllegalStateException: Necesitas usar un tema Theme.AppCompat (o descendente) con esta actividad".

    Tuve tal accidente en los dispositivos de Samsung , aunque la actividad no utilizar Theme.AppCompat . La causa raíz estaba relacionada con optimizaciones extrañas en el lado de Samsung:

     - if one activity of your app has theme not inherited from Theme.AppCompat - and it has also `android:launchMode="singleTask"` - then all the activities that are launched from it will share the same Theme 

    Mi solución era sólo la eliminación de android:launchMode="singleTask"

    En mi caso no tengo archivos de valores-v21 en mi directorio res. Entonces lo creé y agregé en él los siguientes códigos:

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

    Tuve el mismo problema, pero se resolvió cuando pongo esto en manifiesto: android: theme = "@ style / Theme.AppCompat.

      <application android:allowBackup="true" android:icon="@drawable/icon" android:label="@string/app_name_test" android:supportsRtl="true" android:theme="@style/Theme.AppCompat"> ... </application> 

    Cambiar el tema de la Actividad deseada. Su trabajo para mí

     <activity android:name="HomeActivity" android:screenOrientation="landscape" android:theme="@style/Theme.AppCompat.Light" android:windowSoftInputMode="stateHidden" /> 

    Has llegado a esto porque quieres aplicar Material Design en tu estilo de tema en versiones anteriores de sdk a 21. ActionBarActivity requiere AppTheme así que si también quieres evitar tu propia personalización de tu AppTheme, solo tienes que cambiar en tus styles.xml (Anterior a sdk 21) de esta manera, puede heredar un tema de App Compat.

     <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 

    para esto:

     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

    Este trabajó para mí:

     <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/Theme.AppCompat.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

    Usted tiene muchas soluciones a ese error.

    1. Debe utilizar Activity o FragmentActivity en lugar de ActionbarActivity o AppCompatActivity

    2. Si desea utilizar ActionbarActivity o AppCompatActivity , debe cambiar en styles.xml Theme.Holo.xxxx a Theme.AppCompat.Light (si es necesario agregar a DarkActionbar )

    Si no necesita atributos avanzados sobre la barra de acción o AppCompat , no necesita usar Actionbar o AppCompat .

    En el manifiesto de Android solo cambia el tema de la actividad a AppTheme como sigue el fragmento de código

     <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme"> </activity> 

    Cambiar el estilo del tema padre a

      parent="Theme.AppCompat" 

    Esto funcionó para mí …

    Su Actividad está extendiendo ActionBarActivity que requiere la aplicación de AppCompat.theme . Cambiar de ActionBarActivity a Activity o FragmentActivity , resolverá el problema.

    Si no usa una barra de acción, entonces:

     android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" 

    Para mí era una solución para usar ContextThemeWrapper:

     private FloatingActionButton getFAB() { Context context = new android.support.v7.view.ContextThemeWrapper(getContext(), R.style.AppTheme); FloatingActionButton fab = new FloatingActionButton(context); return fab;} 

    Desde Android – ¿Cómo crear FAB de forma programática?

    Esto es cuando desea un AlertDialog en un fragmento

      AlertDialog.Builder adb = new AlertDialog.Builder(getActivity()); adb.setTitle("My alert Dialogue \n"); adb.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //some code } }); adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); adb.show(); 

    Mi actividad con SectionsPagerAdapter y ViewPager y Fragment

     public class MyActivity extends AppCompatActivity implements ActionBar.TabListener ... ... @Override public void onPostResume(){ super.onPostResume(); try { getSupportActionBar().setDisplayShowTitleEnabled(false); }catch (NullPointerException ignored){ } } 

    Esta solución funcionó para mí.

    La biblioteca de diseño depende de las bibliotecas de soporte de Support v4 y AppCompat, así que no use la versión diferente para appcompat y la biblioteca de diseño en gradle.

    utilizar

      compile 'com.android.support:appcompat-v7:23.0.0' compile 'com.android.support:design:23.0.0' 

    en lugar de

      compile 'com.android.support:appcompat-v7:23.0.0' compile 'com.android.support:design:23.1.0' 

    NOTA: Tenía la intención de esto como una respuesta, pero más pruebas revelan que todavía falla cuando se construye usando maven desde la línea de comandos, por lo que he tenido que editarlo para ser un problema! Unesdoc.unesco.org

    En mi caso cuando recibí este error ya estaba usando un tema de AppCompat y el error no tenía mucho sentido.

    Yo estaba en el proceso de mavenizing mi android construir. Ya tenía dependencias en las versiones apklib y jar de app compat, así:

      <!-- See https://github.com/mosabua/maven-android-sdk-deployer --> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <version>${compatibility.version}</version> <type>apklib</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <type>jar</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7</artifactId> <type>jar</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v4</artifactId> </dependency> 

    Ahora, cuando importar el proyecto maven y construir y ejecutar desde IntelliJ está bien.

    Pero cuando construyo y despliego y funciono de la línea de comando con maven todavía consigo esta excepción.

    En Android Studio: Añada una biblioteca de soporte al archivo gradle y sincronice. Edite build.gradle (Module: app) para tener dependencias de la siguiente manera:

     dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.android.support:support-v4:23.1.1' } 

    Mi versión de soporte de la biblioteca es 23.1.1; Utilice la versión de la biblioteca de soporte, según corresponda.

    Para mí ninguna de las respuestas anteriores funcionó incluso después de haber Theme.AppCompat como mi tema base para la aplicación. Yo estaba usando com.android.support:design:24.1.0 Así que acabo de cambiar la versión a 24.1.1 . Después de la sincronización gradle, su funcionamiento de nuevo y la excepción se fue. Me parece que el problema fue con la construcción gradle.

    Sólo poner esto aquí en caso de que otras respuestas no funcionan para algunas personas.

    Para mi problema resuelto cambiando la herencia de AppCompatActivity a Activity en mi clase customDialog. No se requieren cambios en el manifiesto de Theme.Dialog.

    Para mí, el SDK de Android no parecía ser capaz de encontrar la definición de estilos. Todo estaba cableado correctamente y haciendo un simple proyecto limpio arreglado para mí.

    Solo haz eso

    GetApplicationContext (). GetTheme (). ApplyStyle (R.style.Theme_Mc, true);

    Y en sus valores / styles.xml añadir esto

      <style name="Theme.Mc" parent="Theme.AppCompat.Light.NoActionBar"> <!-- ADD Your Styles --> </style> 

    Para mi proyecto Xamarin Android (en MainActivity.cs), cambié …

     public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 

    a

     public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity 

    … y el error desapareció. Me doy cuenta de que no es una solución para todos, pero podría dar una pista del problema subyacente.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.