wake-up-neo.net

Warum fügt Eclipse automatisch Unterstützung für die appcompat v7-Bibliothek hinzu, wenn ich ein neues Projekt erstelle?

Warum fügt Eclipse automatisch die Bibliotheksunterstützung appcompat v7 Hinzu, wenn ich ein neues Projekt erstelle?

Ich erstelle ein einfaches Projekt, dessen MainActivityActivity erweitern soll, aber es funktioniert nicht. Eclipse fügt automatisch Unterstützung für Aktionsleisten hinzu.

Wie erstelle ich ein einfaches Projekt ohne die Bibliothek appcompat? Zu Ihrer Information, ich habe die neueste Version von ADT mit allem, was kürzlich aktualisiert wurde, heruntergeladen. Ich benutze Windows 7 x64.

Enter image description here

216
Talha Qamar

Wie in Android's Support Library Overview angegeben, wird es als bewährte Methode angesehen, die Support Library standardmäßig einzuschließen, da es eine große Vielfalt an Geräten und eine Fragmentierung zwischen den verschiedenen Versionen von Android (und damit der bereitgestellten APIs).

Dies ist der Grund, warum Android Codevorlagen-Tools in Eclipse über die Funktion Android Development Tools (ADT) standardmäßig integriert werden.

Ich habe festgestellt, dass Sie API 15 in Ihrem Beispiel, aber das mindestens erforderliche SDK für Ihr Paket ist API 10, für die die Kompatibilitätsbibliotheken eine enorme Menge abwärtskompatibler APIs bereitstellen können. Ein Beispiel wäre die Fähigkeit, die Fragment API was auf API 11 (Android 3.0 Honeycomb) auf einem Gerät, auf dem eine ältere Version dieses Systems ausgeführt wird.

Es ist auch zu beachten, dass Sie die automatische Einbindung der Support Library standardmäßig deaktivieren können.

105
Halim Qarroum

Erstelle eine neue Android Application Project und DeaktivierenCreate activity in Schritt zwei (Projekt konfigurieren).

59
songhir

Warum fügt meine Eclipse automatisch Unterstützung für die appcompat v7-Bibliothek hinzu, wenn ich ein neues Projekt erstelle

Da Ihr Ziel-SDK auf 15 festgelegt ist, in dem die Aktionsleiste standardmäßig aktiviert ist und Ihr minimal unterstütztes SDK auf 10 festgelegt ist, wird die Aktionsleiste in 11 angezeigt. Sie benötigen daher eine Unterstützungsbibliothek, die Eclipse für Sie hinzufügt. Referenz.

Sie können Projektbibliotheken im Erstellungspfad der Projekteigenschaften konfigurieren.

22

Eclipse hat appcompat_v7 automatisch erstellt. Da KitKat Api selbst gestartet wurde, wird es automatisch hinzugefügt. appcompat_v7 und fragment_main.xml.

Beste Möglichkeiten, um diese zu lösen:

  1. Erstens im Projekt, Right click->properties->Android. Dort sehen Sie die red marked appcompat platziert in Reference. Klicken Sie darauf und entfernen Sie es. Markieren Sie dann den richtigen Zielnamen in Project Build Target.

  2. Löschen Sie fragment_main.xml und Appcompat, die in Ihrer Eclipse erstellt wurden.

  3. Bearbeiten und ändern Sie Ihr activity_main.xml wie folgt:

    <?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. In 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 müssen Sie wie folgt ändern:

    <resources>
    
        <style name="AppBaseTheme" parent="Android:Theme.Holo.Light">
        </style>
    
    </resources>
    
  6. In res/values-v14/styles.xml müssen Sie wie folgt ändern:

      <resources>
    
        <style name="AppBaseTheme" parent="Android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
  7. Ändern Sie Ihr menu/main.xml wie folgt:

    <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. Zum Schluss ändern Sie Ihr MainActivity.Java wie folgt:

    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);
    
    }
    
    }
    

Ebenso müssen Sie dies tun, um ein neues Projekt zu erstellen

18
Stephen

Es ist enthalten, da Ihre minimale SDK-Version auf 10 festgelegt ist. Das ActionBar wurde in API 11 eingeführt. Eclipse fügt es automatisch hinzu, damit Ihre App im gesamten Spektrum von allen konsistenter aussehen kann Android = Versionen, die Sie unterstützen.

8
Ahmad

Wenn Sie nicht auf 2.x-Versionen abzielen, können Sie Ihre minimale SDK-Version von 4.x festlegen und dann ein Projekt erstellen. Appcompat V7 lib wird nicht erstellt.

4
Swapnil

Ich bin neu in Android und das Projekt appcompat_v7 wird immer erstellt, wenn ich ein neues Android Anwendungsprojekt erstelle, was mich so unbehaglich macht.

Dies ist nur ein Spaziergang. Wählen Sie Projekteigenschaften -> Android, dann entfernen Sie appcompat_v7_x in der Bibliothek und fügen appcompat_v7 hinzu. Jetzt können Sie appcompat_v7_x löschen.

Deaktivieren Sie die Option Aktivität erstellen im Assistenten zum Erstellen von Projekten, da beim Erstellen von Aktivitäten mit dem Assistenten das Symbol appcompat_v7_x erneut angezeigt wird. Die Version meines ADT ist v22.6.2-1085508 .
Es tut mir leid, wenn mein Englisch schlecht ist.

4
Lê Quang Duy

Entschuldigung für mein Englisch. Wenn Sie ein neues Android Projekt erstellen, sollten Sie ein API mit hohem Level auswählen, zum Beispiel: von API 17 bis API 21, es wird keine App-Kompatibilität haben und es ist sehr einfach zu teilen Wenn Sie es mit einer niedrigeren API gemacht haben, bearbeiten Sie es einfach in Android Manifest, um eine höhere API zu haben :), danach können Sie Appcompat V7 löschen.

3
nobjta_9x_tq

Laut http://developer.Android.com/guide/topics/ui/actionbar.html

Die ActionBar-APIs wurden erstmals in Android 3.0 (API-Level 11) hinzugefügt. Sie sind jedoch auch in der Support-Bibliothek verfügbar, um die Kompatibilität mit Android 2.1) zu gewährleisten (API Level 7) und höher.

Kurz gesagt, das automatisch generierte Projekt, das Sie sehen modularisiert, das Hinzufügen der ActionBar zu APIs 7- 10.

Example of ActionBar on Froyo

Siehe http://hmkcode.com/add-actionbar-to-Android-2-3-x/ für eine vereinfachte Erklärung und ein Tutorial zum Thema.

2
b1nary.atr0phy

Ich habe festgestellt, dass beim Erstellen eines neuen Android) -Projekts mit ADT 22.6.2 eine 'appcompat'-Bibliothek erstellt wurde, auch wenn minSDK auf 11 und targetSDK auf 19 eingestellt war

Dies geschah, weil in der neuen Projektvorlage Android verwendet einige Attribute, die aus der Support-Bibliothek stammen. Wenn zum Beispiel ein neues Projekt mit der Aktionsleiste erstellt wurde, könnte dies in der main.xml des Menüs erfolgen finde app:showAsAction="never" welches aus der Support Bibliothek stammt.

  • Wenn die App auf Android Version 11 und höher) abzielt, kann dieses Attribut in der main.xml des Menüs in Android:showAsAction Geändert werden
  • Der Standard-Themensatz könnte auch "Theme.AppCompat.Light.DarkActionBar" lauten (styles.xml).

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

    In diesem Fall muss das übergeordnete Thema in style.xml in "Android: style/Theme.Holo.Light.DarkActionBar" geändert werden.

  • Wenn außerdem im Code von MainActivity.Java auf Fragment, Fragment Manager aus der Support-Bibliothek verwiesen wird, müssen diese entsprechend in Fragment, FragmentManager des SDK geändert werden.
0
Jeevan