Почему Eclipse автоматически добавляет поддержку библиотеки appcompat v7 всякий раз, когда я создаю новый проект?

203

Почему Eclipse автоматически добавляет поддержку библиотеки appcompat v7 всякий раз, когда я создаю новый проект?

Я создаю простой проект, MainActivity должен расширять Activity, но это не так. Eclipse автоматически добавляет поддержку панели действий.

Как создать простой проект без библиотеки appcompat? FYI, я загрузил последнюю версию ADT со всем обновленным в последнее время. Я использую Window 7 x64.

Изображение 600

Теги:
appcompat

10 ответов

100
Лучший ответ

Как указано в Android Обзор поддержки библиотеки, считается хорошей практикой включать библиотеку поддержки по умолчанию из-за большого разнообразия устройств и фрагментация, существующая между различными версиями Android (и, следовательно, предоставленных API).

Именно по этой причине Android инструменты шаблонов кода, включенные в Eclipse через Android Development Tools (ADT), интегрируют их по умолчанию.

Я заметил, что вы нацеливаете API 15 в свой образец, но для него требуется, чтобы SDK для вашего пакета был API 10, для которого библиотеки совместимости могут предоставить огромное количество обратных совместимых API. Примером может быть возможность использования Fragment API, который появляется на API 11 (Android 3.0 Honeycomb) на устройстве, которое использует более старую версию этой системы.

Также следует отметить, что вы можете деактивировать автоматическое включение библиотеки поддержки по умолчанию.

  • 54
    Ну, это BS. Я использовал eclipse на уровне API 10 в течение последних 2 месяцев, и он никогда не импортировал библиотеку совместимости или макет фрагмента до тех пор, пока не вышел этот чертов api kitkat. Кажется, на данный момент самый простой способ остановить его появление - не создавать действие автоматически. Таким образом, вам нужно снять галочку «создать деятельность» и создать свою собственную, когда проект будет создан.
  • 0
    здесь я пробовал с мин SDK версии более чем 11, но эта библиотека автоматически создается снова
Показать ещё 5 комментариев
61

Создайте новый Android Application Project и снимите флажок Create activity на втором шаге (Configure project).

  • 0
    Спасибо, но папка menu не была создана в моем проекте.
  • 1
    @songhir, Отлично, теперь Eclipse ожидает от нас написания наших шаблонов вручную .....
Показать ещё 1 комментарий
21

Почему мое затмение автоматически добавляет поддержку библиотеки appcompat v7 когда я создаю новый проект

Поскольку ваш целевой SDK установлен в 15, в котором панель действий включена по умолчанию, а минимальный поддерживаемый SDK установлен в 10. Панель действий вышла в 11, поэтому вам нужна библиотека поддержки, Eclipse добавляет ее для вас, Ссылка.

Вы можете настроить библиотеки проектов в пути сборки свойств проекта.

  • 12
    Если я настроил минимальный SDK как 12 или 13, я все равно получаю такое же поведение от затмения ...
18

Eclipse автоматически создала appcompat_v7. Из-за того, что Kitkat Api запустил сам, он автоматически добавляет appcompat_v7 и fragment_main.xml.

Лучшие способы решения этих проблем:

  • Во-первых, в проекте Right click->properties->Android. см. раздел red marked appcompat, расположенный в Reference. Щелкните это и Удалите его. Затем отметьте нужное имя цели в Project Build Target.

  • Удалите файл fragment_main.xml и Appompat, созданный в вашем Eclipse.

  • Отредактируйте и измените свой activity_main.xml следующим образом:

    <?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>
    
  • В res/values ​​/styles.xml:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    
  • В res/values-v11/styles.xml вам нужно изменить, как это:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    
  • В res/values-v14/styles.xml вам необходимо изменить, как это:

      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
  • Измените меню /main.xml:

    <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>
    
  • Наконец, замените MainActivity.java следующим образом:

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

LikeWise вы должны сделать это для создания нового проекта

  • 2
    О чем они думают? Разве Eclipse не должен иметь решение в один клик для этого?
  • 1
    @Pacerier: Да. Используя appcompat_v7.
Показать ещё 2 комментария
8

Включено, потому что ваша минимальная версия SDK установлена ​​в 10. ActionBar был введен в API 11. Eclipse автоматически добавляет его, чтобы ваше приложение выглядело более согласованным во всем спектре всех поддерживаемых вами версий Android.

4

Я новичок в Android, и проект appcompat_v7 всегда создается, когда я создаю новый проект приложений для Android, поэтому мне так неудобно.

Это просто прогулка. Выберите" Свойства проекта "- > Android, затем в поле" Библиотека" просто удалите appcompat_v7_x и добавьте appcompat_v7. Теперь вы можете удалить appcompat_v7_x.

Снимите флажок "Создать мероприятие" в "Мастер создания проекта", не работает, потому что при создании активности с помощью мастера снова появляется appcompat_v7_x. Моя версия ADT v22.6.2-1085508.
Извините, если мой английский плохой.

  • 1
    Проверьте, так много ответов присутствуют здесь. Этот раздел предназначен для ответа. Вы разместили вопрос в разделе ответов.
  • 1
    Я просто хочу показать способ удаления appcompat_v7_x и не думаю, что это вопрос. Если я ошибся, пожалуйста, прости меня, потому что я новичок в stackoverflow.
4

Если вы не нацеливаете версии 2.x, вы можете установить минимальную версию sdk 4.x и затем создать проект. Appomppat V7 lib не будет создан.

3

Извините за мой английский. Когда вы создаете новый проект для Android, вы должны выбрать api высокого уровня, например: от api 17 до api 21, у него не будет appcompat и очень простой для совместного использования проекта. Если вы сделали это с более низким API, вы просто измените в Android Manifest верхний API:), после чего вы можете удалить Appcompat V7.

2

Согласно http://developer.android.com/guide/topics/ui/actionbar.html

API ActionBar были впервые добавлены в Android 3.0 (уровень API 11), но они также доступны в Библиотеке поддержки для совместимости с Android 2.1 (API уровня 7) и выше.

Короче говоря, этот автоматически сгенерированный проект вы видите модулирует процесс добавления ActionBar в API 7-10.

Изображение 6805

См. http://hmkcode.com/add-actionbar-to-android-2-3-x/ для упрощенного объяснения и учебника по этой теме.

0

Я заметил создание библиотеки "appcompat" при создании нового проекта Android с версией ADT 22.6.2, даже если для параметра minSDK было установлено значение 11, а targetSDK было установлено 19

Это происходило, потому что в новом проекте шаблон android использует некоторые атрибуты из библиотеки поддержки. Например, если новый проект был создан с помощью панели действий, то в меню main.xml можно найти app:showAsAction="never", который из библиотеки поддержки.

  • Если приложение предназначено для Android версии 11 и выше, то можно измените этот атрибут на android:showAsAction в меню main.xml
  • Также может быть установлен набор тем по умолчанию "Theme.AppCompat.Light.DarkActionBar", как показано ниже (styles.xml)

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

    В этом случае родительскую тему в файле style.xml нужно изменить на "android: style/Theme.Holo.Light.DarkActionBar"

  • В дополнение к этому, если ссылка на Fragment, Fragments Manager из библиотека поддержки была сделана в коде MainActivity.java, они имеют для надлежащего изменения на Fragment, FragmentManager SDK.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню