¿Por qué Eclipse agrega automáticamente compatibilidad con la biblioteca appcompat v7 cada vez que creo un proyecto nuevo?


¿Por qué Eclipse agrega automáticamente soporte de biblioteca appcompat v7 cada vez que creo un nuevo proyecto?

Estoy creando un proyecto simple cuyo MainActivity debería extenderse Activity, pero no lo hace. Eclipse agrega automáticamente soporte de barra de acción.

¿Cómo puedo crear un proyecto simple sin la biblioteca appcompat? Para tu información, he descargado la última versión de ADT con todo actualizado recientemente. Estoy usando la ventana 7 x64.

Introduzca la descripción de la imagen aquí

Author: Peter Mortensen, 2014-03-08

10 answers

Como se indica en la Descripción general de la Biblioteca de soporte de Android , se considera una buena práctica incluir la biblioteca de soporte de forma predeterminada debido a la gran diversidad de dispositivos y la fragmentación que existe entre las diferentes versiones de Android (y, por lo tanto, de las API proporcionadas).

Esta es la razón por la que Android las herramientas de plantillas de código incluidas en Eclipse a través de Android Development Tools (ADT) las integran de forma predeterminada.

Noté que usted apunta API 15 en su muestra, pero el el SDK requerido por miminum para su paquete es API 10, para el cual las bibliotecas de compatibilidad pueden proporcionar una enorme cantidad de API compatibles con versiones anteriores. Un ejemplo sería la capacidad de utilizar el Fragment API que aparecen el API 11 (Android 3.0 Honeycomb) en un dispositivo que ejecuta una versión anterior de este sistema.

También debe tenerse en cuenta que puede desactivar la inclusión automática de la Biblioteca de soporte por defecto.

 105
Author: Halim Qarroum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-07 22:08:54

Crear un nuevo Android Application Project y desmarcar Create activity en el paso dos (Configurar proyecto).

 59
Author: songhir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-26 19:05:58

Por qué my eclipse agrega automáticamente soporte para la biblioteca appcompat v7 cada vez que creo un nuevo proyecto

Porque el SDK de destino está configurado en 15, en el que la barra de acciones está activada de forma predeterminada y el SDK mínimo compatible está configurado en 10. La barra de acción sale en 11, por lo que necesita una biblioteca de soporte, Eclipse la agrega para usted. Referencia.

Puede configurar bibliotecas de proyectos en la ruta de compilación de las propiedades del proyecto.

 22
Author: Adam Stelmaszczyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-07 22:01:24

Eclipse creó automáticamente el appcompat_v7.Debido a que la api de Kitkat se lanzó por sí misma, agrega automáticamente appcompat_v7 y fragment_main.xml.

Las mejores maneras de resolver estos:

  1. En primer lugar en el proyecto, Right click->properties->Android.Ahí puedes ver el red marked appcompat colocado en Reference. Haga clic en eso y Retírela.Luego marque el nombre de destino correcto en Project Build Target.

  2. Delete fragment_main.xml y Appcompat archivo creado en su Eclipse .

  3. Edita y cambia tu activity_main.xml como estos:

    <?xml version="1.0" encoding="utf-8"?>
    
    <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_world" />
    
    </RelativeLayout>
    
  4. En res/values/styles.xml:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    
  5. In res/values-v11/styles.xml tienes que cambiar de la siguiente manera:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    
  6. In res/values-v14/styles.xml tienes que cambiar de la siguiente manera:

      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
  7. Cambia tu menu/main.xml me gusta estos:

    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="@string/action_settings"/>
    
    </menu>
    
  8. Finalmente cambia tu MainActivity.java como estos:

    import android.app.Activity;
    import android.os.Bundle;
    
    
    public class MainActivity extends Activity {
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    }
    
    }
    

Así mismo tienes que hacerlo para crear un nuevo proyecto

 18
Author: Luffy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-12 10:07:46

Se incluye porque la versión mínima del SDK está establecida en 10. El ActionBar se introdujo en API 11. Eclipse lo agrega automáticamente para que su aplicación pueda verse más consistente en todo el espectro de todas las versiones de Android que admite.

 8
Author: Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-07 22:01:28

Si no estás apuntando a 2.x versiones puede establecer la versión mínima del sdk de 4.x y luego crear proyecto. Appcompat V7 lib no se creará.

 4
Author: Swapnil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-18 07:35:56

Soy nuevo con Android y el proyecto appcompat_v7 siempre se creará cuando creo un nuevo proyecto de aplicación Android me hace tan incómodo.

Esto es sólo un paseo. Elija Propiedades del proyecto - > Android y, a continuación, en el cuadro Biblioteca, simplemente elimine appcompat_v7_x y agregue appcompat_v7. Ahora puedes eliminar appcompat_v7_x.

Desmarque Crear actividad en crear asistente de proyecto no funciona, porque al crear actividad por asistente el appcompat_v7_x aparece de nuevo. Mi ADT's la versión es v22.6.2-1085508.
Lo siento si mi inglés es malo.

 4
Author: Lê Quang Duy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-08 19:31:09

Lo sentimos con mi inglés, Cuando se crea un nuevo proyecto de Android, debe elegir api de alto nivel, por ejemplo: de api 17 a api 21, No tendrá appcompat y muy fácil de compartir proyecto. Si lo hiciste con la API inferior, solo edita en el Manifiesto de Android para tener la API superior:), después de eso, puedes eliminar Appcompat V7.

 3
Author: nobjta_9x_tq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-13 09:24:47

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

Las API de ActionBar se agregaron por primera vez en Android 3.0 (nivel de API 11) , pero también están disponibles en la Biblioteca de soporte para compatibilidad con Android 2.1 (nivel de API 7) y versiones posteriores.

En resumen, ese proyecto generado automáticamente que estás viendo modulariza el proceso de agregar la barra de acción a las API 7-10.

Ejemplo de ActionBar en Froyo

Véase http://hmkcode.com/add-actionbar-to-android-2-3-x / para una explicación simplificada y tutorial sobre el tema.

 2
Author: b1nary.atr0phy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-08 17:20:25

Me di cuenta de la creación de la biblioteca 'appcompat' al crear un nuevo proyecto de Android con la versión ADT 22.6.2, incluso cuando el minSdk se estableció en 11 y targetSdk se estableció 19

Esto sucedió porque, en la nueva plantilla de proyecto, Android está utilizando algunos atributos que son de la biblioteca de soporte. Por ejemplo, si un nuevo proyecto fue creado con actionbar entonces en el menú principal.xml se puede encontrar app:showAsAction="never" que es de la biblioteca de soporte.

  • Si la aplicación está dirigida a Android versión 11 y superior entonces uno puede cambie este atributo a android:showAsAction en el menú principal.xml
  • También el conjunto de temas por defecto podría ser "Temático.AppCompat.Luz.DarkActionBar " como se muestra a continuación (estilos.xml)

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
           <!-- API 14 theme customizations can go here. -->
       </style> 
    

    En este caso el tema padre en estilo.xml tiene que ser cambiado a " android:estilo/tema.Holo.Luz.DarkActionBar "

  • Además de esto si referencia a Fragment, Fragments Manager from la biblioteca de soporte se realizó en el código de MainActivity.java, estos tienen a apropiadamente cambiado a Fragment, FragmentManager del SDK.
 0
Author: Jeevan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-05 09:26:25